首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SHA和AES加密有什么不同?

SHA和AES加密有什么不同?
EN

Stack Overflow用户
提问于 2009-06-13 13:47:44
回答 5查看 195.5K关注 0票数 105

SHA和AES加密有什么不同?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-13 13:53:32

SHA不是加密,它是一个单向散列函数。AES (Advanced_Encryption_Standard)是一种对称加密标准。

AES Reference

票数 139
EN

Stack Overflow用户

发布于 2009-06-13 14:26:25

SHA和AES用于不同的目的。SHA用于生成数据的哈希,AES用于加密数据。

下面是一个SHA散列对您有用的示例。假设您想要下载某个Linux发行版的DVD ISO映像。这是一个很大的文件,有时会出错-所以您需要验证下载的内容是否正确。你要做的就是去一个可信的来源(比如官方的发行版下载点),他们通常有可用的ISO镜像的SHA散列。现在,您可以为下载的数据生成类似的SHA散列(使用任意数量的打开工具)。现在,您可以比较两个散列以确保它们匹配-这将验证您下载的映像是否正确。如果您从不受信任的来源(如torrent)获取ISO映像,或者您在使用ISO时遇到问题并希望检查映像是否已损坏,这一点尤其重要。

如您所见,在本例中,SHA用于验证未损坏的数据。您完全有权查看ISO中的数据。

另一方面,AES用于加密数据,或者防止人们在知道某些秘密的情况下查看这些数据。

AES使用共享密钥,这意味着用于加密数据的密钥(或相关密钥)与用于解密数据的密钥相同。例如,如果我使用AES加密了一封电子邮件,并将该电子邮件发送给您,那么您和我都需要知道用于加密和解密电子邮件的共享密钥。这与使用PGP或SSL等公钥的算法不同。

如果您想将它们放在一起,可以使用AES对消息进行加密,然后发送未加密消息的SHA1散列,以便在消息解密时能够验证数据。这是一个有点做作的例子。

如果你想了解更多关于这些的维基百科搜索词(除了AES和SHA之外),你可以尝试一下,包括:

对称密钥算法(用于AES)加密哈希函数(用于SHA)公钥加密(用于PGP和SSL)

票数 76
EN

Stack Overflow用户

发布于 2009-06-13 14:04:14

SHA是散列函数,而AES是加密标准。给定一个输入,您可以使用SHA产生一个输出,这是任何其他输入都不太可能产生的。此外,在应用函数时会丢失一些信息,因此即使您知道如何生成产生相同输出的输入,该输入也不太可能与最初使用的输入相同。另一方面,AES旨在保护共享相同加密密钥的两方之间发送的任何数据不会泄露给第三方。这意味着一旦您知道加密密钥和输出(以及IV...)您可以无缝地返回到原始输入。请注意,SHA只需要一个输入即可应用,而AES至少需要3个元素:您正在加密/解密的内容、加密密钥和初始化向量(IV)。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/990705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档