我读了几次MD5不是加密,例如在MD5 ... Encryption?或Command Line Message Digest Utility。
好吧,我知道它是一个哈希/消息摘要,上面链接中的解释说加密必须有一个密钥,而hash / md是一个加密哈希函数,只产生一个一个签名。我真的不明白其中的区别。你难道不能将加密哈希函数/算法看作一把钥匙吗?
此外,加密和加密的东西有什么区别?
答案 0 :(得分:3)
你不能“解密”md5散列函数,如果你想传输信息并且接收者无法读取它,你选择了一个糟糕的算法。
因此加密必须是可解密的。 MD5是一种“加密”哈希函数,因为生成具有特定给定哈希值的信息块非常困难。 因此,如果您要签署一条消息,就足以签署该哈希值。这使用较少的计算能力,接收器无论如何都可以确保原始消息不受影响。
答案 1 :(得分:2)
哈希算法导致原始数据的信息不可替代地丢失,而加密算法则有相应的解密算法来恢复原始数据。
这可以表明,无论输入如何,哈希算法结果都具有统一的大小(128,160,256等位),而加密算法结果具有可变大小,具体取决于输入的大小。
答案 2 :(得分:0)
我认为你不能把功能本身视为关键。 因为密钥是你传递给函数的东西,用于加密或解密(< - 不可能用md5)消息。