常用數據加解密那些事
在開發中由于對于數據安全性的要求,會對數據進行加解密處理。通常使用的加密方式有數字摘要、對稱加密和非對稱加密等。
一、數字摘要
數字摘要是將任意長度的消息變成固定長度的短消息,它類似于一個自變量是消息的函數,也就是Hash函數。數字摘要就是采用單項Hash函數將需要加密的明文“摘要”成一串固定長度(128位)的密文這一串密文又稱為數字指紋,它有固定的長度,而且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。來源:百度百科
基于以上特征數字摘要主要運用于信息一致性的校驗,比較常用的數字摘要算法有MD5,SHA等。摘要算法主要是為防止信息的篡改,一個數字簽名的工作原理圖如下(來自百度百科)
:
對此圖解釋如下:
發方A將原文信息進行哈希運算,得一哈希值即數字摘要MD;
發方A用自己的私鑰PVA,采用非對稱RSA算法,對數字摘要MD進行加密,即得數字簽名DS;
發方A用對稱算法DES的對稱密鑰SK對原文信息、數字簽名SD及發方A證書的公鑰PBA采用對稱算法加密,得加密信息E;
發方用收方B的公鑰PBB,采用RSA算法對對稱密鑰SK加密,形成數字信封DE,就好像將對稱密鑰SK裝到了一個用收方公鑰加密的信封里;
發方A將加密信息E和數字信封DE一起發送給收方B;
收方B接受到數字信封DE后,首先用自己的私鑰PVB解密數字信封,取出對稱密鑰SK;
收方B用對稱密鑰SK通過DES算法解密加密信息E,還原出原文信息、數字簽名SD及發方A證書的公鑰PBA;
收方B驗證數字簽名,先用發方A的公鑰解密數字簽名得數字摘要MD;
收方B同時將原文信息用同樣的哈希運算,求得一個新的數字摘要MD’;
將兩個數字摘要MD和MD’進行比較,驗證原文是否被修改。如果二者相等,說明數據沒有被篡改,是保密傳輸的,簽名是真實的;否則拒絕該簽名。
這樣就可以保證敏感信息的在傳輸過程中不被篡改,保證了信息的安全性。
二、對稱加密
對稱加密也成為對稱秘鑰加密,可以使用同一秘鑰對信息進行加解密處理。對稱加密是使用比較早的加密算法,通過約定規則(加密秘鑰)處理后變成密文發送出去,接受者根據規則(加密秘鑰)來逆向進行解密,使其變為明文。
這里的秘鑰就如同諜戰片中的密碼本。
對稱加密算法中常用的算法有:DES、3DES、TDEA、AES等
優缺點:
優點:算法公開、計算量小、加密速度快、加密效率高
缺點:
1、交易雙方都使用同樣鑰匙,安全性得不到保證。
2、每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的惟一鑰匙,
這會使得發收信雙方所擁有的鑰匙數量呈幾何級數增長,密鑰管理成為用戶的負擔。對稱加密算法在分布式網絡系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。
三、非對稱加密
非對稱加密解密與解密是使用不同的秘鑰,因此需要兩個秘鑰:公開秘鑰和私有秘鑰??梢允褂霉€與私鑰進行相互加解密,即用公開密鑰對數據進行加密,用對應的私有密鑰才能解密;用私有密鑰對數據進行加密,那么用對應的公開密鑰才能解密。常用的加密算法是RSA等。
非對稱加解密原理
A要向B發送信息,A和B都要產生一對用于非對稱加密算法和解密的公鑰和私鑰。
A的私鑰保密,A的公鑰告訴B;B的私鑰保密,B的公鑰告訴A。
A要給B發送信息時,A用B的公鑰加密信息,因為A知道B的公鑰。
A將這個消息發給B(已經用B的公鑰加密消息)。
B收到這個消息后,B用自己的私鑰解密A的消息。其他所有收到這個報文的人都無法解密,因為只有B才有B的私鑰。
非對稱加解密保密性比較好,不需要交換秘鑰,但是算法強度復雜 ,加解密耗時,適合對少量數據進行加密。
作者:木夜溯
來源:簡書
鏈接:http://www.jianshu.com/p/ee3919e2d4dd