导航:首页 > 文档加密 > 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加密传输后台解密相关的资料

热点内容
输解压密码时候压缩文件损坏 浏览:399
xampp如何运行php项目 浏览:900
哪个app团购电影票最便宜 浏览:618
国外如何给信件加密 浏览:164
哪个看书app免费书全 浏览:37
用php写一段自我介绍的代码 浏览:660
安卓手机怎么连接欧西亚 浏览:287
thinkpad用来编程怎么样 浏览:680
小米手机的桌面文件夹怎么找 浏览:823
java栈是什么意思 浏览:992
常州数控编程培训 浏览:725
博客编程随想 浏览:715
阿里云服务器怎么弄多个ip 浏览:798
思科配置loopback命令 浏览:169
数控铣床编程图形 浏览:171
编程故事课 浏览:833
达拉斯比洛杉矶源码 浏览:651
房贷提前解压可以吗 浏览:169
php7手册中文版下载 浏览:224
越南服务器怎么选 浏览:412