例如(这不是真的,我只是制作随机的md5字符串)
如果密码1的MD5是: MD5STRING
和密码2的MD5是 MD5STRING
并且两个md5哈希值相同,在输入密码时,哪一个都有效?
答案 0 :(得分:3)
是的,在这种情况下,可能会接受其中一个密码。请注意,现在数据库应该包含PBKDF的值(例如PBKDF2,bcrypt或scrypt)而不是散列。
但是如果使用MD5,那么就不太可能存在这样的密码。可以生成MD5冲突,但这对于非常少量的数据不起作用。 16个字符的密码不会产生冲突,您至少需要一个额外的16字节块来创建冲突。
MD5已损坏,但 已损坏。
答案 1 :(得分:0)
如果没有更具体的信息,最好的答案如下。
取决于您如何处理密码。
在大多数情况下,两个密码都可以使用,因为密码作为一对与用户令牌相关联,因此您必须匹配用户令牌和密码才能获得访问权。
答案 2 :(得分:0)
只要您的密码链接到用户名/电子邮件/任何唯一字段,就可以了。 但请记住,如果黑客无法访问您的数据库,他将能够更快地解密密码。
另一方面,如果可以的话,我建议至少使用SHA512而不是MD5。