MD5算法是否始终为同一个字符串生成相同的输出?

vfc*_*sts 24 hash md5

MD5算法是否始终为同一个字符串生成相同的输出?

是否只使用盐来产生不同的输出?

Jim*_*Jim 36

是的,否则MD5对文件验证等内容毫无用处.你对非确定性输出有什么理由?

  • 我嘲笑“你有什么理由产生非确定性输出”,因为这正是我的想法。然而,显然 .NET 的 GetHashCode() 是不确定的,至少在应用程序运行之间是这样。 (2认同)

Fem*_*ref 7

是的,哈希算法总是产生相同的输出.如果使用相同的盐,这也将始终为给定输入生成相同的输出.


Sco*_*ord 6

是的,MD5总是输出相同的输入.这就是它用于密码的方式.您将哈希值存储在数据库中,然后当用户键入其密码时,它会再次进行哈希处理并比较两个哈希值.

注意:建议不要将MD5用于散列密码,因为它在加密方面较弱.有更合适的加密哈希值,例如bcrypt.但是,从历史上看,它已被用于此目的.