加密与摘要的区别

46

加密和摘要之间有什么区别?

3个回答

55

加密使用密钥和加密算法将明文转换为加密文本。后续可以使用相同的密钥和算法解密加密文本。

摘要使用明文生成哈希码,用于验证是否未修改原始文本,但无法使用哈希值解密原始文本。


7
是的,摘要通常是单向的,但是使用彩虹表或劣质的哈希算法,可以反向计算哈希值并获取原始文本。这只是一个小细节。 - Alan
Nik,我们可能应该提到没有什么可以阻止某个人更改消息然后生成新的摘要。不过,像HMAC或DSA这样的东西可以做到这一点。 - Steven Sudit
1
@alan 是的,对于像密码这样的短文本是可以使用的,但对于像文本文档或图像这样的大文件则不适用。 - Nikolaus Gradwohl
@Steven 要么这样,要么你必须以安全的方式/位置存储生成的 MAC。 - Nikolaus Gradwohl
1
@Nik:好的加密摘要很难在短时间内找到一个合理的明文,因此您可以在以私有但未加密且可能被篡改的方式发送明文之前立即以明文形式传输摘要。例如,您可以在报纸上发布摘要,然后通过邮件发送明文。这并不能防止邮件被拦截,但它确实使替换为伪造消息变得困难。 - Steven Sudit
我想我应该提一下这些被称为预像攻击(http://en.wikipedia.org/wiki/Preimage_attack)。在我的例子中提到的类型将是第二次预像攻击,因为它有已知明文。即使使用像MD5这样的“破解”哈希算法,这仍然非常困难,但只需采用两个不同的哈希算法就可以任意增加难度。 - Steven Sudit

6
加密可以隐藏明文内容,而摘要是一种特殊的哈希函数,可以作为数据的指纹。如果消息摘要使用私钥加密,则可以用作数字签名,以确保它来自特定来源。

1
通过使用(消息)摘要,可以验证文件的完整性,请参见http://en.wikipedia.org/wiki/Message_digest。然而,身份验证(即验证消息来自特定来源)无法使用简单的摘要完成。身份验证需要例如数字签名。 - Dirk Vollmar

1
加密是使用密码学函数将明文转换为密文的过程。单向密码学函数,如密码哈希函数,是不可逆的。双向密码学函数,如对称或非对称密钥函数,是可逆的。
消息摘要使用加密来验证消息内容在发送者和接收者之间传输时没有被修改。消息摘要是通过将整个消息的内容应用于密码哈希函数生成的固定长度字符串。它由发送方计算并附加到消息中。当接收者接收到消息时,接收者可以重新计算消息摘要并将其与消息中的原始消息摘要进行比较。如果两个字符串相等,则接收者可以确定消息在传输过程中没有被更改。
消息摘要也称为哈希或指纹。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接