为了使密码更加安全,在进行密码破解之前会向密码中添加随机盐。
我假设盐以关联数组 [用户名:盐] 的形式存储在服务器上,并且服务器在每次用户登录时将盐附加到密码之后再进行加解密,否则服务器将不知道在密码之后附加什么随机盐
1)我的假设正确吗?
2)盐通常以纯文本还是密码形式存储在服务器上,为什么?
3)它存储在哪个文件中?(我知道这可能是主观的,因为它取决于不同的服务器)
如果可能的话我希望得到详细的解释
谢谢
答案1
它与加密的密码字符串连接在一起(可能带有分隔符,也可能只是固定数量的字符;取决于您正在讨论的特定密码文件)因此,例如,我的/etc/shadow
包含$6$prRzIBxG$K4w0950HW9eMmVgzqpmdgfpxqmFtXZx.mS7wGorSoeXvt51tejXxx22CoTsrmj9AsszgT.CvkB5BrPuMq1r.Z/
加密密码。 $6$ 是控制序列,盐是pr
。
(请注意,这是在 UNIX 等密码文件系统上;您也标记了 IIS,但 Windows 将密码、盐等存储在一个称为 SAM 的相当不透明的数据结构中。)