天天看點

簡述常用加解密算法

(作為一個剛剛畢業的菜菜程式猿,首次更新部落格,歡迎大家多多批評指正)

簡述常用加解密算法

一、産生的原因

為確定資料在網絡上傳輸的安全性。

二、使用場景

1、RSA加解密适用場景 RSA主要用于加密和簽名,加密過程中,公鑰用于加密,私鑰用于解密;簽名過程中,私鑰用于加密,公鑰用于解密.

2、MD5加密适用場景 MD5算法主要用于加密應用軟體登入密碼、進行數字簽名、對檔案完整性進行驗證等方面.

3、通常情況下,對于大資料的加密,使用AES或者DES等對稱加密算法對資料進行加密,使用RSA等非對稱加密算法對AES或DES的秘鑰進行加密.

三、常用算法

1、古典加密算法

古典密碼(classical cryptography)編碼方式歸根結底主要就是置換和代換.

置換:已知明文字母集S={a,b},置換後的密碼可以是S’={b,a},即将明文字元位置發生變化後形成的密碼就是置換密碼.

代換:已知明文集S1={a,b,c},S2={1,2,3},将S1中的字元代換為S2中對應位置的字元,那麼S1将代換後的密碼為S’={1,2,3},即将明文資訊替換為另一個字元集中的字元形成的密碼稱為代換密碼.

古典密碼因其加密過程過于簡單:加密過程本質就是從明文字母表到密文字母表的一一映射,這樣很不安全,在實際的應用中基本不使用.

2、DES加密算法

DES加密算法是一個利用64位的密鑰對以64位為機關的塊資料進行加解密。 對稱加密算法是應用最早的加密算法,技術成熟,在進行對稱加密的過程中,發送方将明文資訊和加密秘鑰一起進行加密處理後,将生成的密文資訊發送給接收方,接收方收到密文後,使用已知的秘鑰對其進行解密,才能得到正确的明文資訊.

3、AES加密算法

AES即進階加密标準,是新一代的資料加密标準,是對DES的更新,加密效果更好,破解難度更大,安全性更好. AES是常用的分組(128位)、對稱加密算法,采用相同秘鑰對明文進行加解密,他的速度比RSA算法要快很多,一般在資料加解密和檔案加解密過程中使用。

4、RSA加密算法

RSA是目前最流行的非對稱加解密算法之一,也被稱為公鑰加密算法,即加密秘鑰和解密秘鑰是不相同的.

使用RSA加密的時候,會産生一對密鑰對,公鑰和私鑰,公鑰是大家都可以知道的,私鑰是隻有資訊的發送方和接收方知道的,其他任何第三方都不能知道的,即必須保證私鑰的私有性和安全性.通常情況下,當資料在網絡中傳輸時,私鑰是不會和資料一起傳送,這樣就減少了秘鑰洩露的可能性.

通常情況下,對于大資料的加密,采用DES或AES進行加密,然後使用RSA對加密秘鑰進行加密,資料發送之後,接收方使用RSA解密秘鑰對DES或AES的秘鑰進行解密,然後用解密出來的秘鑰對資料進行解密.

5、哈希加密算法

5.1 MD5加密算法

MD5(message-digest algorithm 5 )算法模型是一個安全的雜湊演算法,輸入兩個不同的資訊一般情況下不會得到相同的輸出值,即兩個不同的明文資訊經過MD5加密之後不會得到相同的密文;反過來,根據密文資訊,不能得到原始的明文資訊,即MD5加密過程不可逆. 如果要破解MD5加密的密文,目前沒有現成的算法,隻能通過“撞庫”.

MD5加密特點 ①長度固定;②計算簡單;③抗修改性;④不可逆性.

5.2 SHA加密算法

SHA1和SHA2,常用的有SHA512、SHA256算法等,其中SHA256與MD5類似,但是安全性更高。

6、其他加密算法

橢圓加密算法;

四、總結

加解密的實質就是将我們需要在網絡傳輸的資料轉換為别人不能直覺或簡單破譯的字元串,以確定我們的資料不被别人篡改、截獲以及洩漏的過程。俗話說,你想要得到一些東西那麼你一定會為之付出一定的代價,加解密也一樣,你如果想要確定資料的安全,那麼你就得付出諸如:接口因為需要加密導緻響應過慢等代價。

從安全性來說,RSA加密算法是目前認為比較安全的算法,比他更安全的還有橢圓加密算法等,但是他們的運作速度通常較慢,一般情況下,我們隻會使用它們來對AES或者DES的加密秘鑰進行加密。實際運用過程中,需要根據實際情況,選擇符合實際的加解密算法,平衡好安全性和高效性之間的關系。

繼續閱讀