導航:首頁 > 文檔加密 > aes加密傳輸後台解密

aes加密傳輸後台解密

發布時間:2024-06-21 13:45:35

❶ 移動端與後端數據傳輸加密

對稱加密:對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網路傳輸,所以安全性不高
非對稱加密:非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
方案:將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。
方案的流程介紹:
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

❷ AES128鍔犺В瀵嗘祦紼嬭︾粏浠嬬粛


AES128鍔犲瘑/瑙e瘑嫻佺▼娣卞害瑙f瀽


鍔犲瘑榪囩▼: AES128鐨勫姞瀵嗕箣鏃呭嬩簬16瀛楄妭鐨勫師濮嬫暟鎹鍜16瀛楄妭鐨勫瘑閽ワ紝棣栧厛灝嗕袱鑰呰瀺鍚堝埌涓涓鎺掑垪鐭╅樀涓銆傛帴鐫錛岄氳繃杞瀵嗛掗鍔狅紙寮傛垨錛夋搷浣滐紝閰嶅悎瀛楄妭浠f浛錛圫鐩掞級鐨勯瓟鏈錛岃岀Щ浣嶄笌鍒楁販娣嗭紙鍥哄畾鐭╅樀錛夌殑宸у欑粍鍚堬紝榪涜10杞榪浠c傛渶鍚庯紝閫氳繃鎵╁睍瀵嗛掗錛圞鐭╅樀鎿嶄綔錛夌敓鎴愪竴涓鍏抽敭妗ユ侊紝紜淇濇暟鎹鐨勫畨鍏ㄨ漿縐匯


鍔犲瘑姝ラよ﹁В錛


  1. 杞瀵嗛掗鍔狅細 4x4瀵嗘枃鍗曞厓涓庢墿灞曞瘑閽ョ殑鏈4瀛楄妭榪涜岃瀺鍚堛

  2. 琛岀Щ浣嶏紙鍔犲瘑涓庤В瀵嗙浉鍙嶏級錛 涓庡姞瀵嗘椂鐨勬ラょ浉鍙嶏紝紜淇濊В瀵嗙殑姝g『榪樺師銆

  3. 瀛楄妭浠f浛錛堥嗗悜S鐩掞級錛 閲囩敤閫嗗悜S鐩掑彉鎹錛岀簿緇嗚皟鏁寸煩闃靛厓緔犮

  4. 杞瀵嗛掗鍔狅紙閲嶅嶏級錛 4杞鍚庯紝鍐嶄笌鎵╁睍瀵嗛掗鐨勫叾浣欓儴鍒嗚繘琛屽姞娉曡繍綆椼

  5. 絎10杞錛 瀵嗘枃鐢熸垚錛屾渶鍚庝竴杞涓嶆販娣嗭紝淇濈暀鍘熷嬩俊鎮鐨勫畬鏁存с


瑙e瘑姝ラわ細 涓庡姞瀵嗙浉鍙嶏紝鐢10杞杞瀵嗛掗鍔狅紝姣忔′嬌鐢ㄦ墿灞曞瘑閽ワ紝紜淇濊繕鍘熷姞瀵嗘椂鐨勬瘡涓姝ャ傝В瀵嗘椂錛岃В瀵嗘槑鏂囧湪10杞鍚庢彮鏅擄紝涓斿湪鏈鍚庝竴杞鏃訛紝鍒楁販娣嗙殑鎿嶄綔闇璋冩暣涓洪嗗悜澶勭悊銆


瀹為檯搴旂敤錛 瀵逛簬鏂囦歡鍔犲瘑錛岄櫎浜嗗熀紜鐨勭數瀛愬瘑鐮佹湰錛圗CB錛夛紝鎴戜滑榪樻湁鍏朵粬瀹夊叏閫夐」銆侲CB鉶界劧綆鍗曪紝浣嗘槗鏆撮湶閲嶅嶆ā寮忥紝闇璋ㄦ厧浣跨敤銆傚瘑鐮佸潡閾炬帴錛圕BC錛夐氳繃鍒濆嬪悜閲忛伩鍏嶆ā寮忛棶棰橈紝鏀鎸佸苟琛岃В瀵嗭紝浣嗚В瀵嗘椂瀵歸敊璇鏁忔劅銆傚瘑鏂囧弽棣堬紙CFB錛変互bit涓哄崟浣嶏紝鎻愪緵棰濆栫殑瀹夊叏灞傦紝浣嗚В瀵嗘椂鏈夐噸鏀炬敾鍑婚庨櫓銆


妯″紡璇﹁В錛


鍦ㄦ枃浠跺垎鍧楁椂錛屽彲鑳戒細鐢ㄥ埌濉鍏呮満鍒訛紝濡侼oPadding銆丳KCS#7銆乑erosPadding絳夛紝浠ユ弧瓚蟲暟鎹瀹屾暣鎬с傚悗緇絝犺妭灝嗘繁鍏ユ帰璁ㄨ繖浜涙妧鏈浠ュ強鍙鑳界殑鏀誨嚮鐮磋В絳栫暐銆


❸ 前端使用CryptoJS AES加密 ,後端php解密問題

PHP7.1 已經不能用mcrypt了,所以我用的是openssl_encrypt和openssl_decrypt。

<?php
$data="ThisisanAEScryptdemo.";
$privateKey="";//KEY16位元組用aes-128-cbc,32位元組用aes-256-cbc
$iv="4490d2ded4f2d4ad";//AES的IV是16個位元組

//加密
//$encrypted=openssl_encrypt($data,'aes-128-cbc',$privateKey,0,$iv);
$encrypted=openssl_encrypt($data,'aes-256-cbc',$privateKey,0,$iv);
echo$encrypted,PHP_EOL;

//解密
$encryptedData=$encrypted;
//$decrypted=openssl_decrypt($encryptedData,'aes-128-cbc',$privateKey,0,$iv);
$decrypted=openssl_decrypt($encryptedData,'aes-256-cbc',$privateKey,0,$iv);
echo($decrypted);

輸出結果如下:

EPcMQRXA53/hRkPyILFI4fF/9sW2X53tLiDT26khNsA=
ThisisanAEScryptdemo.

java實現ase加密解密

這個演算法java SDK自帶的額 參考代碼如下:

/**解密

*@paramcontent待解密內容

*@parampassword解密密鑰

*@return

*/

publicstaticbyte[]decrypt(byte[]content,Stringpassword){

try{

KeyGeneratorkgen=KeyGenerator.getInstance("AES");

kgen.init(128,newSecureRandom(password.getBytes()));

SecretKeysecretKey=kgen.generateKey();

byte[]enCodeFormat=secretKey.getEncoded();

SecretKeySpeckey=newSecretKeySpec(enCodeFormat,"AES");

Ciphercipher=Cipher.getInstance("AES");//創建密碼器

cipher.init(Cipher.DECRYPT_MODE,key);//初始化

byte[]result=cipher.doFinal(content);

returnresult;//加密

}catch(NoSuchAlgorithmExceptione){

e.printStackTrace();

}catch(NoSuchPaddingExceptione){

e.printStackTrace();

}catch(InvalidKeyExceptione){

e.printStackTrace();

}catch(IllegalBlockSizeExceptione){

e.printStackTrace();

}catch(BadPaddingExceptione){

e.printStackTrace();

}

returnnull;

}



/**

*加密

*

*@paramcontent需要加密的內容

*@parampassword加密密碼

*@return

*/

publicstaticbyte[]encrypt(Stringcontent,Stringpassword){

try{

KeyGeneratorkgen=KeyGenerator.getInstance("AES");

kgen.init(128,newSecureRandom(password.getBytes()));

SecretKeysecretKey=kgen.generateKey();

byte[]enCodeFormat=secretKey.getEncoded();

SecretKeySpeckey=newSecretKeySpec(enCodeFormat,"AES");

Ciphercipher=Cipher.getInstance("AES");//創建密碼器

byte[]byteContent=content.getBytes("utf-8");

cipher.init(Cipher.ENCRYPT_MODE,key);//初始化

byte[]result=cipher.doFinal(byteContent);

returnresult;//加密

}catch(NoSuchAlgorithmExceptione){

e.printStackTrace();

}catch(NoSuchPaddingExceptione){

e.printStackTrace();

}catch(InvalidKeyExceptione){

e.printStackTrace();

}catch(UnsupportedEncodingExceptione){

e.printStackTrace();

}catch(IllegalBlockSizeExceptione){

e.printStackTrace();

}catch(BadPaddingExceptione){

e.printStackTrace();

}

returnnull;

}

http://blog.csdn.net/hbcui1984/article/details/5201247
圖像界面的話就不說了
閱讀全文

與aes加密傳輸後台解密相關的資料

熱點內容
用演算法控制玩家的行為 瀏覽:478
androidsdk17下載 瀏覽:792
怎麼給單獨表格添加密碼 瀏覽:12
下載壓縮密碼 瀏覽:259
android系統上編程 瀏覽:468
單片機模擬i2c從機 瀏覽:236
教育年報系統伺服器如何開啟 瀏覽:840
對稱密鑰加密後的長度 瀏覽:292
微製造編程軟體下載 瀏覽:106
旋住宿酒店用哪個App最好 瀏覽:60
三菱編程中怎麼創建子程序 瀏覽:199
在單片機溫度輸入採集信號有 瀏覽:684
電腦雲伺服器同步 瀏覽:418
方舟生存進化手游版怎麼轉伺服器 瀏覽:89
哪個app可以聽小說 瀏覽:160
網路發送數據如何加密 瀏覽:201
教材完全解讀pdf 瀏覽:820
什麼是多台伺服器 瀏覽:36
菜鳥音樂編輯app哪個好 瀏覽:547
人工魚群演算法matlab 瀏覽:82