cryptojsphp互通_JS实现AES加密并与PHP互通的⽅法分析本⽂实例讲述了JS实现AES加密并与PHP互通的⽅法。分享给⼤家供⼤家参考,具体如下:
有关数据加密解密问题,有很多钟加密⽅式;
这⾥我讲述下js和php实现AES互通
js加密:
⾸先引⼊这⼏个js⽂件
js代码加密软件var data="test";//加密字符串
var key = Latin1.parse('@12345678912345!');//密钥
var iv = Latin1.parse('@12345678912345!');//与密钥保持⼀致
//加密
var data = JSON.stringify(data);//将数据对象转换为json字符串
var encrypted = pt(data,key,{iv:iv,de.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});
Utf8);
document.write(decrypted);//输出解密后的数据
注意:在实际⽤的时候和php传输中,js加密后的字符串⾥⾯的+被浏览器解析成了空格 然后php解密的时候出错;这⾥可以对加密之后的字符串做进⼀步处理encrypted=encodeURIComponent(encrypte
d);就没有这个问题了
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:关于加密解密感兴趣的朋友还可以参考本站在线⼯具:希望本⽂所述对⼤家JavaScript程序设计有所帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论