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

热点内容
python遍历两个数组 浏览:393
手游搭建云服务器 浏览:401
视易锋云服务器启动黑屏 浏览:139
python怎么获取网页a标签内容 浏览:982
app更新后老的安装包去哪里了 浏览:199
集合运算法则差集 浏览:310
x2pdf 浏览:271
python源码cs 浏览:101
数控机床自动编程软件 浏览:738
方舟的服务器号是什么 浏览:111
没有服务器怎么发现其他节点 浏览:337
文明传奇怎么开服务器 浏览:56
javalistint 浏览:675
程序员到公司当领导 浏览:225
用算法控制玩家的行为 浏览:483
androidsdk17下载 浏览:793
怎么给单独表格添加密码 浏览:12
下载压缩密码 浏览:260
android系统上编程 浏览:470
单片机模拟i2c从机 浏览:238