SHA和AES加密之间有什么区别?[关闭]


Answers:


120

SHA不是加密,而是一种单向哈希函数。AES(Advanced_Encryption_Standard)是对称加密标准。

AES参考


85

SHA是国家安全局开发的“安全哈希算法”系列。对于谁将成为SHA-3(2012+的新哈希算法),目前有数十种选择之间存在竞争。

您可以使用SHA函数获取大型文档并计算输入的“摘要”(也称为“哈希”)。重要的是要意识到这是一个单向过程。您无法摘要并恢复原始文档。

AES(Advanced Encryption Standard)是一种对称块算法。这意味着需要16个字节的块并对其进行加密。它是“对称的”,因为密钥允许加密和解密。

更新: Keccak在2012年10月2日被评为SHA-3获奖者。


64

SHA和AES具有不同的用途。SHA用于生成数据哈希,而AES用于加密数据。

这是一个SHA哈希对您有用的示例。假设您要下载一些Linux发行版的DVD ISO映像。这是一个大文件,有时会出问题-因此,您需要验证下载的内容是否正确。您要做的是转到受信任的源(例如官方发行版下载点),它们通常具有可用的ISO映像的SHA哈希。现在,您可以为下载的数据生成可比较的SHA哈希(使用任何数量的开放工具)。现在,您可以比较两个散列,以确保它们匹配-这将验证您下载的图像正确。如果您从不受信任的来源(例如torrent)获得ISO映像,或者在使用ISO时遇到问题并想要检查映像是否已损坏,则这一点尤其重要。

如您所见,在这种情况下,SHA已用于验证未损坏的数据。您有权查看ISO中的数据。

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

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

如果您想将它们放在一起,则可以使用AES加密消息,然后发送未加密消息的SHA1哈希,以便在解密消息时,他们可以验证数据。这是一个人为的例子。

如果您想进一步了解这些Wikipedia搜索词(不包括AES和SHA),请尝试包括:

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


9

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


7

SHA代表安全哈希算法,而AES代表高级加密标准。因此,SHA是一套哈希算法。另一方面,AES是用于加密的密码。SHA算法(SHA-1,SHA-256等)将接受输入并产生摘要(哈希),通常在数字签名过程中使用(产生一些字节的哈希并使用私钥签名) 。


3

SHA不需要任何东西,但要应用输入,而AES至少需要3件事-您要加密/解密的内容,加密密钥和初始化向量。


1
[这是标记为“迟到的回答到一个老问题,通过一个新的用户提供我的意见是在这种背景下,本不出现加什么其他的答案本已提供给这个问题上的任何信息。
danfuzz

那是错的。您不需要初始化向量(IV)即可使用AES。AES的某些操作模式需要IV(完全不同)。
希尔德·维托·利马·佩雷拉
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.