SHA和AESencryption有什么区别?

SHA和AESencryption有什么区别?

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

AES参考

SHA是由国家安全局开发的一系列“安全散列algorithm”。 目前有数十种select的竞争者将成为SHA-3 ,即2012年的新哈希algorithm。

您使用SHA函数来获取大文档并计算input的“摘要”(也称为“散列”)。 认识到这是一个单向的过程是很重要的。 您不能摘要并恢复原始文档。

AES ,高级encryption标准是一种对称块algorithm。 这意味着它需要16个字节块并encryption它们。 它是“对称的”,因为密钥允许encryption和解密。

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

SHA和AES有不同的用途。 SHA用于生成数据的散列,AES用于encryption数据。

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

正如你在这种情况下所看到的,SHA已经被用来validation没有被破坏的数据。 您完全有权查看ISO中的数据。

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

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

如果要将它们放在一起,可以使用AES对消息进行encryption,然后沿着未encryption消息的SHA1散列发送消息,以便在解密消息时validation数据。 这是一个有点人为的例子。

如果您想了解更多关于维基百科的一些search术语(超越AES和SHA),您想尝试包括:

对称密钥algorithm(用于AES)密码散列函数(用于SHA)公钥encryption(用于PGP和SSL)

SHA代表安全散列algorithm,AES代表高级encryption标准。 所以SHA是一套哈希algorithm。 AES另一方面是用于encryption的密码。 SHAalgorithm(SHA-1,SHA-256等)将接收input并生成摘要(散列),这通常用于数字签名过程(产生一些字节的散列并用私钥签名) 。

SHA是散列函数,AES是encryption标准。 给定一个input,你可以使用SHA来产生一个非常不可能从任何其他input产生的输出。 另外,在应用函数时,某些信息会丢失,因此,即使您知道如何生成一个输出产生相同的输出,input也不可能与首先使用的input相同。 另一方面,AES旨在防止向共享相同encryption密钥的双方之间发送的任何数据泄露给第三方。 这意味着一旦你知道encryption密钥和输出(和IV …),就可以无缝地回到原来的input。 请注意,SHA不需要任何东西,只需input一个input即可,而AES需要至less三个:encryption/解密,encryption密钥和初始化向量(IV)。

SHA不需要任何东西,只需要input即可使用,而AES至less需要3件事 – encryption/解密,encryption密钥和初始化向量。