什么是SHA1和RSA之间的差异?他们只是不同的算法或者是他们根本(即用于不同的东西)在一定程度上不同。

有帮助吗?

解决方案

根本不同的。

<强> SHA1 是哈希算法,这是一个单向函数,车削任何大小的输入到固定长度的输出(在这种情况下160比特)。加密散列函数是一个用于它不应该有可能找到两个输入提供相同的输出,除了由蛮力(例如,具有128位的功能应该需要尝试平均2 ^ 64消息以找到这样的“碰撞”由于一种叫做生日悖论 - 谷歌它更多)

在实际上对于SHA1这不再的情况下 - 该算法是(在加密方面至少)现在打破,与由王小云等人即比一个经典生日攻击描述的碰撞攻击。该家族SHA2不破,并且过程正在进行通过NIST上的算法SHA3算法或家庭同意。

修改 - 谷歌现在已经产生并公布实际SHA1碰撞

<强> RSA 是一种非对称的加密算法,加密输入到随后可解密的输出(对比不能逆转的散列算法)。它使用的加密比解密一个不同的密钥(公开的)(私人的)。这因此可以用来接受别人加密的消息 - 你可以发布你的公钥,但只有你用私有密钥才能解密,然后已经加密与它的消息

如果你扭转了RSA密钥,它可以被用来生成数字签名 - 通过加密您的私人密钥的东西,任何人都可以用公钥解密,如果他们确信公钥是属于你的,那么他们有你是谁加密的原始的一个信心。这是结合正常进行与散列函数 - 你散列自己的输入,然后加密用私钥,给出一个固定的长度的数字签名为您的输入消息

其他提示

答案是之前已经充分解释。但我想你问这个问题,只是因为SHA和RSA经常出来together.So让我解释一下为什么。

首先,请注意,

RSA效率不高,但SHA是

假设你下载Windows 7,并且要确保,如果是原来的Windows 7微软。如果微软仅仅通过RSA加密的Windows 7,它会需要很长的时间来做到这一点,我们不能忍受它。因此,微软使用的Windows 7 SHA1,并产生128位长的数据。然后微软加密这128位与RSA长数据(使用其私钥)。

然后,所有你需要做的是,确保你的公钥是来自微软。然后使用SHA1太生成128位长的数据。然后使用RSA的公钥来解密微软的签名。然后你只比较这两个128位长的数据,看它们是否匹配。

SHA1是散列算法(文献和认证签名),而RSA是一个加密/解密算法(安全通信)。

正如其他人的评论,它们是提供不同功能的根本不同的东西。您可以使用RSA来加密信息成看似随意的形式,而你使用SHA1以保证信息的完整性(即无位已经改变)。在安全应用程序,您将使用一个或两个,这取决于你所需要的功能。

SHA1是加密散列函数,而RSA是用于加密的算法。

一个散列函数以一个数据片,并返回固定长度的字符串。在加密散列函数都返回字符串具有相同的概率。鉴于只有哈希数字不能确定输入,也无法找到另一个输入,让相同的散列(错误时抛出一个非常非常小的概率)。 SHA1具有一定的安全漏洞。

用于加密的算法给出取一块数据,但输出的长度是固定的未 - 加密的。给定的输出(加密),可以(如果你有正确的键)确定输入。

在安全散列算法(SHA)算法将长度小于264位的消息,并产生一个160位的消息摘要。该算法比MD5稍微慢一些,但较大的消息摘要使得针对蛮力碰撞和倒置的攻击更加安全。在安全散列标准(SHS,FIPS 180)中指定的算法,是由NIST开发。 SHA-1是一个修订SHA这是1994年出版;该修订SHA修正未公开的漏洞。它的设计是非常相似的MD4家族由Rivest设计的散列函数。 SHA-1也设置在ANSI X9.30标准中描述。

RSA是公钥加密算法的算法。这是已知适于签署以及加密和公共密钥加密的第一个伟大的进步之一第一算法。 RSA被广泛应用于电子商务协议,并且被认为是安全的给定足够长的密钥和使用多达最新实现的。

<强>最显着的区别是,SHA是一种加密算法,而RSA既是加密以及签名算法。

在2005年8月16日它宣布有可能找到在SHA-1的碰撞在2 ^ 63点的操作。这项研究结果是由于在北京清华大学的王小云教授,连同教授安德鲁·姚储枫。它扩展了王尹,和玉,这表明碰撞可能在2 ^ 69的操作中找到的工作。这也就意味着,它更容易在SHA发生碰撞比RSA - 但值得注意的是,没有两个相似的钥匙曾经被发现相撞

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top