我认为当使用salt时,MD5是根据串联字符串+ salt计算的。因此,'aaa'和salt'aa'这个词应该像'aaaa'一样,盐'a'或'aaaaa'没有盐。
但这就是我得到的......
md5pass aaa aa
$1$aa$EeTKacbSboHIR0fSp2UVf0
md5pass aaaa a
$1$a$M2jh3iKJcBEuJdTGjNcsh0
你能解释为什么校验和不同吗?
谢谢,
马丁
答案 0 :(得分:0)
我混淆了两个不同的东西 - MD5校验和和密码哈希
MD5校验和用于检查文件是否未被修改。不使用盐,结果通常是十六进制数。
MD5密码哈希用于以不可读的形式存储密码。它在许多次迭代中使用MD5(密码+盐),结果以$1$
开头。
md5pass
根据给定的密码和salt计算密码哈希值。有许多md5的迭代(传递+ salt + result_from_previous_iteration),所以不仅仅是MD5(传递+盐)。