密碼常用加密演算法

2022-09-06 15:00:19 字數 895 閱讀 2750

對稱性加密演算法:aes,des,3des

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

相較於des和3des演算法而言,aes演算法有著更高的速度和資源使用效率,安全級別也較之更高了,被稱為下一代加密標準

非對稱性加密演算法:rsa,dsa,ecc

rsa和dsa的安全性及其它各方面效能都差不多,而ecc較之則有著很多的效能優越,包括處理速度,頻寬要求,儲存空間等等。

線性雜湊演算法(簽名演算法):md5,sha1,hmac

這幾種演算法只生成一串不可逆的密文,經常用其效驗資料傳輸過程中是否經過修改,因為相同的生成演算法對於同一明文只會生成唯一的密文,若相同演算法生成的密文不同,則證明傳輸資料進行過了修改。通常在資料傳說過程前,使用md5和sha1演算法均需要傳送和接收資料雙方在資料傳送之前就知道密匙生成演算法,而hmac與之不同的是需要生成乙個密匙,傳送方用此密匙對資料進行摘要處理(生成密文),接收方再利用此密匙對接收到的資料進行摘要處理,再判斷生成的密文是否相同。

對於各種加密演算法的選用:

由於對稱加密演算法的金鑰管理是乙個複雜的過程,金鑰的管理直接決定著他的安全性,因此當資料量很小時,我們可以考慮採用非對稱加密演算法。

在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的金鑰,然後用對稱加密演算法加密資料,這樣我們就整合了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理金鑰的優點。

如果在選定了加密演算法後,那採用多少位的金鑰呢?一般來說,金鑰越長,執行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,rsa建議採用1024位的數字,ecc建議採用160位,aes採用128為即可。

**實現

加密演算法 流密碼加密

流密碼是一種常見的加密演算法,基於異或 xor 操作,每次只操作乙個位元組,常見的流密碼加密演算法有 rc4 oryx seal。因為異或加密的本質,最常見的錯誤就是多次使用同乙個金鑰進行加解密。攻擊者甚至不需要知道金鑰就能成功破解密文。原理如下 缺陷 a b為明文,c為金鑰 e a a xor c...

常用加密演算法

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

常用加密演算法

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