常用加密演算法探尋

2021-09-24 06:35:31 字數 1310 閱讀 4653

在開發過程中,常常用到各種加密方法和演算法,本文總結了幾種常用加密方法的原理。

加密和解密資料使用同乙個金鑰,適合對大量資料進行加解密

關鍵是金鑰的儲存方式,加密或是解密的任何一方洩漏金鑰,都會導致資訊洩漏

des、3des、blowfish、idea、rc4、rc5、rc6、aes等

非對稱加密演算法需要兩個金鑰:公開金鑰(publickey)和私有金鑰(privatekey)。公開金鑰與私有金鑰是一對,如果用公開金鑰對資料進行加密,只有用對應的私有金鑰才能解密;如果用私有金鑰對資料進行加密,那麼只有用對應的公開金鑰才能解密

公鑰可以被任何人知道,但是私鑰被洩漏就會導致資訊洩漏

數字簽名,私鑰擁有者對資訊進行加密,接受者使用公鑰解密成功,就可以確定傳送者的身份

通常是1024,2048等。金鑰長度增長一倍,公鑰操作所需時間增加約4倍,私鑰操作所需時間增加約8倍,公私鑰生成時間約增長16倍

加密的明文長度不能超過rsa金鑰的長度減去11byte,比如金鑰長度是1024位的,1024位=1024bit=128byte,128-11=117byte,所以明文長度不能超過117byte,如果長度超過該值將會丟擲異常。加密後密文的長度為金鑰的長度,如金鑰長度為1024bit(128byte),最後生成的密文固定為 1024bit(128byte)

des、3des、blowfish、idea、rc4、rc5、rc6、aes等

採用某種雜湊函式,輸入不同長度的明文,得到相同的長度的密文,明文的微小變化都能引起密文的巨大變化。其實雜湊雜湊演算法不算是真正的加密,而是生成對應明文的指紋資訊,用來校驗資料的完整性。

不能通過密文反推明文,通常作為資料的完整性校驗

生成資訊摘要,驗證資訊的完整性

不用明文儲存使用者密碼,比如使用md5(md5(使用者密碼)+salt)來儲存密碼和驗證密碼,防止攻擊者用彩虹表攻擊

md2、md4、md5、panama、sha-0、sha-1、sha-256、sha-512等

名稱金鑰長度

運算速度

安全性資源消耗

加密型別

des56位較快低

中對稱3des

168位慢中

高對稱idea

128位較慢中

高對稱aes128、192、256位快高

低對稱rsa1024、2048、3072、4096慢高

高非對稱

dsa1024、2048、3072、4096慢高

低非對稱

ecc256快高

低非對稱

sha-1慢高

低雜湊md5快中低

雜湊

常用加密演算法

常用加密演算法 des data encryption standard 對稱演算法,資料加密標準,速度較快,適用於加密大量資料的場合 3des triple des 是基於des的對稱演算法,對一塊資料用三個不同的金鑰進行三次加密,強度更高 rc2和rc4 對稱演算法,用變長金鑰對大量資料進行加密...

常用加密演算法

平時經常會遇到一些加密解密之類的處理,特編寫成乙個專門的類,以後只需要呼叫即可!用法很簡單,例項化類之後呼叫相關方法就行!會對應返回加密解密後的字串!using system using system.collections.generic using system.text using syste...

常用加密演算法

一 對稱性加密演算法 aes,des,3des des是一種分組資料加密技術 先將資料分成固定長度的小資料塊,之後進行加密 速度較快,適用於大量資料加密,而3des是一種基於des的加密演算法,使用3個不同密匙對同乙個分組資料塊進行3次加密,如此以使得密 度更高。相較於des和3des演算法而言,a...