① 安卓網路請求數據時如何保證數據的完整性和安全性使用哪種加密
通過網路傳輸數據,需要保證數據的完整性、保密性,以及能夠對數據的發送者進行身份驗證。這些都需要通過一些加密演算法實現。
對稱加密:
加密和解密使用同一個密鑰,特點:保證了數據的保密性。局限性:無法解決密鑰交換問題。常用的演算法有:DES,3DES,AES;
公鑰加密:
生成一個密鑰對(私鑰和公鑰),加密時用私鑰加密,解密時用公鑰解密,特點:解決了密鑰交換問題。局限性:對大的數據加密速度慢。
單向加密:
提取數據的特徵碼,特點:定長輸出,不可逆,可檢驗數據的完整性。局限性:無法保證數據的保密性。常用演算法:MD5、SHA1、CRC-32。
三種加密方法各有優缺點,在時實際應用中,數據從發送方到達接收方,通常是這樣應用的:
1) 首先對要發送的數據做單向加密,獲取數據的特徵碼;
2) 對特徵碼用發送方的私鑰進行加密生成S1;
3) 然後對S1和數據進行對稱加密生成S2;
4) 最後將S2和對稱加密的密碼使用接收方的公鑰進行加密。
這樣一來數據在傳輸過程中的完整性、保密性以及對發送方身份的驗證都能得到保障。
當數據到達接收方時,接收方先用自己的私鑰對接收到的數據進行解密,得到密碼和加密的數據;使用密碼對加密數據解密,得到加密的特徵碼和數據;用發送方的公鑰解密特徵碼,如果能解密,則說明該數據是由發送方所發;反之則不是,這便實現了身份驗證;最後計算數據的特徵碼和解密出來的特徵碼做對比,如果一樣,則該數據沒有被修改;反之則數據被修改過了。