1.分類
加密算法首先分為兩種:單向加密、雙向加密。
單向加密是不可逆的,也就是只能加密,不能解密。通常用來傳輸類似用戶名和密碼,直接將加密后的數(shù)據(jù)提交到后臺,因?yàn)楹笈_不需要知道用戶名和密碼,可以直接將收到的加密后的數(shù)據(jù)存儲到數(shù)據(jù)庫。
雙向加密算法通常分為對稱性加密算法和非對稱性加密算法,對于對稱性加密算法,信息接收雙方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是對數(shù)據(jù)進(jìn)行 加解密了。非對稱算法與之不同,發(fā)送雙方A,B事先均生成一堆密匙,然后A將自己的公有密匙發(fā)送給B,B將自己的公有密匙發(fā)送給A,如果A要給B發(fā)送消 息,則先需要用B的公有密匙進(jìn)行消息加密,然后發(fā)送給B端,此時B端再用自己的私有密匙進(jìn)行消息解密,B向A發(fā)送消息時為同樣的道理。
2.常用算法
幾種對稱性加密算法:AES,DES,3DES
DES是一種分組數(shù)據(jù)加密技術(shù)(先將數(shù)據(jù)分成固定長度的小數(shù)據(jù)塊,之后進(jìn)行加密),速度較快,適用于大量數(shù)據(jù)加密,而3DES是一種基于DES的加密算法,使用3個不同密匙對同一個分組數(shù)據(jù)塊進(jìn)行3次加密,如此以使得密文強(qiáng)度更高。
相較于DES和3DES算法而言,AES算法有著更高的速度和資源使用效率,安全級別也較之更高了,被稱為下一代加密標(biāo)準(zhǔn)。
幾種非對稱性加密算法:RSA,DSA,ECC
RSA和DSA的安全性及其它各方面性能都差不多,而ECC較之則有著很多的性能優(yōu)越,包括處理速度,帶寬要求,存儲空間等等。
幾種線性散列算法(簽名算法):MD5,SHA1,HMAC
這幾種算法只生成一串不可逆的密文,經(jīng)常用其效驗(yàn)數(shù)據(jù)傳輸過程中是否經(jīng)過修改,因?yàn)橄嗤纳伤惴▽τ谕幻魑闹粫晌ㄒ坏拿芪模粝嗤惴ㄉ傻拿芪牟煌瑒t證明傳輸數(shù)據(jù)進(jìn)行過了修改。通常在數(shù)據(jù)傳說過程前,使用MD5和SHA1算法均需要發(fā)送和接收數(shù)據(jù)雙方在數(shù)據(jù)傳送之前就知道密匙生成算法,而HMAC與之不同的是需要生成一個密匙,發(fā)送方用此密匙對數(shù)據(jù)進(jìn)行摘要處理(生成密文),接收方再利用此密匙對接收到的數(shù)據(jù)進(jìn)行摘要處理,再判斷生成的密文是否相同。
3.加密算法選用
對于各種加密算法的選用:
由于對稱加密算法的密鑰管理是一個復(fù)雜的過程,密鑰的管理直接決定著他的安全性,因此當(dāng)數(shù)據(jù)量很小時,我們可以考慮采用非對稱加密算法。
在實(shí)際的操作過程中,我們通常采用的方式是:采用非對稱加密算法管理對稱算法的密鑰,然后用對稱加密算法加密數(shù)據(jù),這樣我們就集成了兩類加密算法的優(yōu)點(diǎn),既實(shí)現(xiàn)了加密速度快的優(yōu)點(diǎn),又實(shí)現(xiàn)了安全方便管理密鑰的優(yōu)點(diǎn)。
如果在選定了加密算法后,那采用多少位的密鑰呢?一般來說,密鑰越長,運(yùn)行的速度就越慢,應(yīng)該根據(jù)的我們實(shí)際需要的安全級別來選擇,一般來說,RSA建議采用1024位的數(shù)字,ECC建議采用160位,AES采用128為即可。
對于幾種加密算法的內(nèi)部實(shí)現(xiàn)原理,有興趣的可以細(xì)細(xì)研究。而對于其實(shí)現(xiàn)而言,網(wǎng)上有很多開源版本,比較經(jīng)典的是PorlaSSL其它語言如JAVA,OBJC也都有相應(yīng)的類庫可以使用。
-
算法
+關(guān)注
關(guān)注
23文章
4707瀏覽量
95192 -
AES
+關(guān)注
關(guān)注
0文章
107瀏覽量
33525 -
DES
+關(guān)注
關(guān)注
0文章
65瀏覽量
48700 -
加密算法
+關(guān)注
關(guān)注
0文章
218瀏覽量
25812
發(fā)布評論請先 登錄
關(guān)于幾種常用加密算法比較

汽車遙控加密算法
RSA加密算法
uid加密算法
DES加密算法是什么
對稱加密算法是什么
軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用
淺談對稱加密算法與非對稱密鑰加密算法
常見公鑰加密算法有哪些
Go常用的加密算法詳細(xì)解讀
常見加密算法分類

評論