js php aes加密,JS实现AES加密并与PHP互通的方法分析

本文实例讲述了JS实现AES加密并与PHP互通的方法。分享给大家供大家参考,具体如下:

有关数据加密解密问题,有很多钟加密方式;

这里我讲述下js和php实现AES互通

js加密:

首先引入这几个js文件

本站下载地址。

var data="test";//加密字符串

var key = CryptoJS.enc.Latin1.parse('@12345678912345!');//密钥

var iv = CryptoJS.enc.Latin1.parse('@12345678912345!');//与密钥保持一致

//加密

var data = JSON.stringify(data);//将数据对象转换为json字符串

var encrypted = CryptoJS.AES.encrypt(data,key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});

encrypted=encodeURIComponent(encrypted);

document.write(decrypted);//输出加密后的字符串

//解密

var data="加密的字符串";

//key和iv和加密的时候一致

var decrypted = CryptoJS.AES.decrypt(data,key,{iv:iv,padding:CryptoJS.pad.ZeroPadding});

decrypted=decrypted.toString(CryptoJS.enc.Utf8);

document.write(decrypted);//输出解密后的数据

注意:在实际用的时候和php传输中,js加密后的字符串里面的+被浏览器解析成了空格 然后php解密的时候出错;这里可以对加密之后的字符串做进一步处理encrypted=encodeURIComponent(encrypted);就没有这个问题了

PHP的加密解密方法:

$privateKey="@12345678912345!";

$iv="@12345678912345!";

//加密

$encrypted=mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$privateKey,$data,MCRYPT_MODE_CBC,$iv);

echo base64_encode($encrypted);

//解密

$encryptedData=base64_decode($data);

$decrypted=mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$privateKey,$encryptedData,MCRYPT_MODE_CBC,$iv);

$decrypted=rtrim($decrypted,"\0");//注意!解密出来的数据后面会出现六个红点;这句代码可以处理掉,从而不影响进一步的数据操作

return $decrypted;

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

BASE64编码解码工具:http://tools.jb51.net/transcoding/base64

密码安全性在线检测:http://tools.jb51.net/password/my_password_safe

高强度密码生成器:http://tools.jb51.net/password/CreateStrongPassword

MD5在线加密工具:http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具:http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:http://tools.jb51.net/password/sha_encode

更多关于JavaScript相关内容可查看本站专题:《JavaScript加密解密技巧汇总》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值