SHA 和 RSA 的区别
SHA?VS RSA:它們之間有什么區(qū)別?
SHA 和 RSA 有什么區(qū)別? 它們只是不同的算法還是在某種程度上從根本上(即用于不同事物)不同。
原文來自于 stackoverflow:https://stackoverflow.com/questions/733692/sha1-vs-rsa-whats-the-difference-between-them
根本不同
SHA1是一種哈希算法,是一種單向函數(shù),可將任何大小的輸入轉(zhuǎn)換為固定長(zhǎng)度的輸出(在這種情況下為160位)。 密碼散列函數(shù)是這樣一種函數(shù),除了蠻力之外,不可能找到兩個(gè)給出相同輸出的輸入(例如,對(duì)于128位函數(shù),您應(yīng)該平均嘗試2 ^ 64條消息才能找到這樣的散列函數(shù)) 由于發(fā)生了“生日悖論”,導(dǎo)致了“碰撞”-Google為其提供了更多信息)
實(shí)際上,對(duì)于SHA1而言,情況已不再如此-該算法(至少在密碼學(xué)意義上)現(xiàn)在被破壞了,由Xiaoyun Wang等人描述的碰撞攻擊擊敗了典型的生日攻擊。 SHA2系列沒有被破壞,NIST正在開發(fā)一個(gè)程序以商定SHA3算法或算法系列。
Google現(xiàn)在已經(jīng)生成并發(fā)布了實(shí)際的SHA1碰撞。
RSA是一種非對(duì)稱加密算法,將輸入加密為輸出,然后可以將其解密(與不可逆的哈希算法形成對(duì)比)。 它使用與加密(專用)不同的密鑰(公用)。 因此,它可以用來接收來自其他人的加密消息-您可以發(fā)布您的公共密鑰,但是只有擁有私有密鑰的您才能解密已被其加密的消息。
如果您將RSA的密鑰反向,則可以將其用于生成數(shù)字簽名-通過使用您的私有密鑰加密某些內(nèi)容,任何人都可以使用公共密鑰對(duì)其進(jìn)行解密,如果他們確定公共密鑰屬于您,則他們擁有 相信您是對(duì)原始文件進(jìn)行加密的人。 通常,這是與哈希函數(shù)結(jié)合完成的:先哈希輸入,然后使用私鑰加密,為輸入消息提供固定長(zhǎng)度的數(shù)字簽名。
?
RSA效率不高,但SHA效率高
假設(shè)您下載Windows 7,并想確定它是否是Microsoft的原始Windows 7。 如果Microsoft僅通過RSA加密Windows 7,則將花費(fèi)很長(zhǎng)的時(shí)間來使我們完全受不了它。 因此,Microsoft在Windows 7上使用SHA1并生成128位長(zhǎng)的數(shù)據(jù)。 然后,Microsoft使用RSA(使用其私鑰)對(duì)該128位長(zhǎng)的數(shù)據(jù)進(jìn)行加密。
然后,您需要做的就是確保您的公鑰來自Microsoft。 然后也使用SHA1生成128位長(zhǎng)的數(shù)據(jù)。 然后使用RSA的公鑰解密Microsoft的簽名。 然后,您只需比較兩個(gè)128位長(zhǎng)的數(shù)據(jù)以查看它們是否匹配。
SHA1是一種哈希算法(哈希算法特別的地方在于它是一種單向算法,用戶可以通過Hash算法對(duì)目標(biāo)信息生成一段特定長(zhǎng)度的唯一的Hash值,卻不能通過這個(gè)Hash值重新獲得目標(biāo)信息。因此Hash算法常用在不可還原的密碼存儲(chǔ)、信息完整性校驗(yàn)等,常用于文檔和證書簽名),而RSA是一種加密/解密算法(安全通信)。
?
正如其他人所評(píng)論的那樣,它們本質(zhì)上是不同的事物,起著不同的作用。 您使用RSA將信息加密為看似隨機(jī)的形式,同時(shí)使用SHA1來確保消息的完整性(即,所有位均未更改)。 在安全應(yīng)用程序中,您將使用一種或兩種,這取決于所需的功能。
?
SHA1是一種加密哈希函數(shù),而RSA是一種加密算法。
哈希函數(shù)獲取一條數(shù)據(jù)并返回固定長(zhǎng)度的字符串。 在密碼哈希函數(shù)中,所有返回字符串具有相同的概率。 僅給出哈希數(shù),您將無法確定輸入,也找不到其他給出相同哈希值的輸入(可能性非常小的執(zhí)行)。 Sha1有一些安全漏洞。
加密算法給出的是一段數(shù)據(jù),但是輸出的長(zhǎng)度不是固定的-您的加密。 給定輸出(加密),就可以確定輸入(如果您有正確的密鑰)。
?
總結(jié)
以上是生活随笔為你收集整理的SHA 和 RSA 的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity2d游戏开发系列教程:三、场景
- 下一篇: 2018ChinaJoy万代南梦宫展区的