『壹』 移動端與後端數據傳輸加密
對稱加密:對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網路傳輸,所以安全性不高
非對稱加密:非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
方案:將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。
方案的流程介紹:
1、APP客戶端需要和伺服器進行數據交互,它的APP首先生成了一個隨機數作為對稱密鑰(比如AES加密的密鑰)。
2、APP客戶端向伺服器請求公鑰
3、伺服器將公鑰發送給APP客戶端
4、APP客戶端使用伺服器的公鑰將自己的對稱密鑰(比如AES加密的密鑰)加密
5、APP客戶端將加密後的對稱密鑰發送給伺服器
6、伺服器使用私鑰解密得到APP客戶端的對稱密鑰
7、APP客戶端與伺服器可以使用對稱密鑰來對溝通的內容進行加密與解密了
App端和後台數據加密分兩部分:
1.數據傳輸的時候加密 (一般採用Https協議在傳輸層加密)
2.數據本身的加密 (使用各種加密演算法)
RSA非對稱加密:公鑰加密,私鑰解密。公鑰私鑰由服務端生成,公鑰放在客戶端私密保存,私鑰放在服務端。安全性高,運算速度慢
AES對成加密:運算速度快切安全性高
上面網路通信過程是安全的,可以保證通信數據即使被截取了,也無法獲得任何有效信息;即使被篡改了,也無法被客戶端和服務端驗證通過。
具體可參考的博文:(記得後續實踐哦)
https://blog.csdn.net/wangjiang_qianmo/article/details/88073848?utm_medium=distribute.pc_relevant.none-task-blog--1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog--1.channel_param
『貳』 如何給手機app上密碼鎖
以華為手機設置密碼鎖的步驟是:『叄』 手機如何給軟體加密
加密聊天的核心,就是系統平台不會儲存用戶的聊天記錄,所有的聊天內容都加密儲存在聊天雙方的設備上
展開來說現在加密技術很多,點對點,端對端,閱後即焚,雙向撤回,一鍵清除,防止截圖,這些其實都是為了保護用戶的隱私安全。以前只有國外有,現在就國內的好運吧就做的很好,除了加密技術,最出彩還是偽裝功能,外殼可以偽裝各種常見應用,一般人就看不出是聊天軟體網路能查到相關資料的
『肆』 求安卓加密,安卓應用加密方式
android是用java語言開發的,java語言,JDK給我們提供了非常多的加密演算法
如基本的單向加密演算法:
BASE64 嚴格地說,屬於編碼格式,而非加密演算法
MD5(Message Digest algorithm 5,信息摘要演算法)
SHA(Secure Hash Algorithm,安全散列演算法)
HMAC(Hash Message Authentication Code,散列消息鑒別碼)
復雜的對稱加密(DES、PBE)、非對稱加密演算法:
DES(Data Encryption Standard,數據加密演算法)
PBE(Password-based encryption,基於密碼驗證)
RSA(演算法的名字以發明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)DH(Diffie-Hellman演算法,密鑰一致協議)
DSA(Digital Signature Algorithm,數字簽名)
ECC(Elliptic Curves Cryptography,橢圓曲線密碼編碼學)
以下就是講解BASE64、MD5、SHA、HMAC幾種方法
MD5、SHA、HMAC這三種加密演算法,可謂是非可逆加密,就是不可解密的加密方法。我們通常只把他們作為加密的基礎。單純的以上三種的加密並不可靠。
一. BASE64
按 照RFC2045的定義,Base64被定義為:Base64內容傳送編碼被設計用來把任意序列的8位位元組描述為一種不易被人直接識別的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)
常見於郵件、http加密,截取http信息,你就會發現登錄操作的用戶名、密碼欄位通過BASE64加密的。
二. MD5
MD5 -- message-digest algorithm 5 (信息-摘要演算法)縮寫,廣泛用於加密和解密技術,常用於文件校驗。校驗?不管文件多大,經過MD5後都能生成唯一的MD5值。好比現在的ISO校驗,都 是MD5校驗。怎麼用?當然是把ISO經過MD5後產生MD5的值。一般下載linux-ISO的朋友都見過下載鏈接旁邊放著MD5的串。就是用來驗證文 件是否一致的。
三. SHA
SHA(Secure Hash Algorithm,安全散列演算法),數字簽名等密碼學應用中重要的工具,被廣泛地應用於電子商務等信息安全領域。雖然,SHA與MD5通過碰撞法都被破解了, 但是SHA仍然是公認的安全加密演算法,較之MD5更為安全。
四. HMAC
HMAC(Hash Message Authentication Code,散列消息鑒別碼,基於密鑰的Hash演算法的認證協議。消息鑒別碼實現鑒別的原理是,用公開函數和密鑰產生一個固定長度的值作為認證標識,用這個 標識鑒別消息的完整性。使用一個密鑰生成一個固定大小的小數據塊,即MAC,並將其加入到消息中,然後傳輸。接收方利用與發送方共享的密鑰進行鑒別認證 等。
『伍』 APP自動登錄加密流程
用戶輸入密碼,App把這些信息用RSA公鑰加密:(用戶名,密碼,時間,mac,隨機數),並發送到伺服器。
伺服器用RSA私鑰解密,判斷時間(可以動態調整1天到7天),如果不在時間范圍之內,則登陸失敗。如果在時間范圍之內,再調用coreservice判斷用戶名和密碼。
這里判斷時間,主要是防止攻擊者截取到加密串後,可以長久地利用這個加密串來登陸。
如果伺服器判斷用戶成功登陸,則用AES加密:(隨機salt,用戶名,客戶端類型,時間),以(用戶名+Android/IOS/WP)為key,存到緩存里。再把加密結果返回給客戶端。
客戶端保存伺服器返回的加密串
App發送保存的加密串到伺服器,(加密串,用戶名,mac,隨機數)==>RSA公鑰加密
伺服器用RSA私鑰解密,再用AES解密加密串,判斷用戶名是否一致。如果一致,再以(用戶名+Android/IOS/WP)為key到緩存里查詢。如果判斷緩存中的salt值和客戶端發送過來的一致,則用戶登陸成功。否則登陸失敗。
不用AES加密,用RSA公鑰加密也是可以的。AES速度比RSA要快,RSA只能存儲有限的數據。RSA演算法最好選擇2048位的。搜索" rsa 1024 crack"有很多相關的結果,google已經將其SSL用的RSA演算法升級為2048位的。