2010-12-04 21 views
20

MD5算法是否总是为相同的字符串生成相同的输出?MD5算法是否总是为相同的字符串生成相同的输出?

正在使用盐来产生不同的输出?

+2

你能解释你为什么要问吗?看起来你想要某种原因的另一种行为。 – 2010-12-04 15:59:47

+1

这是一个确定性算法。它会怎么做呢? – 2010-12-04 23:11:10

+0

我不熟悉密码学与哈希之间的区别。 我认为它也混淆了RC5 – vfclists 2010-12-04 23:48:13

回答

30

是的,否则MD5将无用于文件验证等事情。你对非确定性输出有什么理由?

6

是的,哈希算法总是产生相同的输出。如果使用相同的盐,则对于给定的输入,这也会始终产生相同的输出。

5

是的,MD5总是输出相同的输入。这就是它用于密码的方式。将散列存储在数据库中,然后当用户键入他们的密码时,再次散列并对两个散列进行比较。

注意:MD5不推荐用于哈希密码,因为它的加密性较弱。还有更适合的密码哈希可用,如bcrypt。然而,历史上它已被用于此目的。

0

是的。 MD5是一个散列函数。

这样做不是表示MD5是唯一的。多个输入可映射到相同的散列,但任何给定的输入只有一个散列。

1

是MD5是确定性的,这被认为是消息摘要函数的许多应用的理想特性。

至于使用盐,你真的是指'以某种微妙的方式改变输入字符串',不是吗?当然,它也是消息摘要的一个理想的特征,它们以很高的概率为不同的消息产生不同的摘要。

相关问题