PHP和JS的AES相互加解密方法(CryptoJS)
累了一天了,话不多说了,直接上代码自行理解吧
HTML(index.html)代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP和JS的AES相互加解密方法(CryptoJS) - 远昔博客</title> <script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script> <script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/aes.min.js"></script> <script src="https://cdn.bootcss.com/zepto/1.1.5/zepto.min.js"></script> </head> <body> <div style="margin:0 18%;"> <h4>加密测试:</h4> <ul> <li id="encrypt_key"></li> <li id="encrypt_string"></li> </ul> </div> <div style="margin:0 18%;"> <h4>解密测试:</h4> <ul> <li id="decrypt_key">解密的密钥(PHP端生成):</li> <li id="decrypt_string">JS解密后字符串:</li> </ul> </div> <script type="text/javascript"> function encrypt(str, key, iv) { //密钥16位 var key = CryptoJS.enc.Utf8.parse(key); //加密向量16位 var iv = CryptoJS.enc.Utf8.parse(iv); var encrypted = CryptoJS.AES.encrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }); return encrypted; } function decrypt(str, key, iv) { var key = CryptoJS.enc.Utf8.parse(key); var iv = CryptoJS.enc.Utf8.parse(iv); var decrypted = CryptoJS.AES.decrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }); return decrypted.toString(CryptoJS.enc.Utf8); } </script> <script> var key = '2s039f8jlvnapof09vbhn234'; var iv = 'A92v63wqfzftstgb'; var data = 'fcdc.cn|1658324044'; var encrypted_string = encrypt(data, key, iv); $("#encrypt_key").text("【JS加密密钥】:" + key); $("#encrypt_string").text("【JS加密后字符串】:" + encrypted_string); var data2 = "tORfCZnp4a7C+CoBoe5/QBU150yrw1B7P4mecSFLwCY="; var decrypted_string = decrypt(data2, key, iv); $("#decrypt_key").text("【解密的密钥(PHP端生成)】:" + key); $("#decrypt_string").text("【JS解密后字符串】:" + decrypted_string); </script> </body> </html>
PHP(index.php)代码:
<?php $key = '2s039f8jlvnapof09vbhn234'; $iv= 'A92v63wqfzftstgb'; $data = 'fcdc.cn|1658324044'; $encrypt=@base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv));//加密 echo $encrypt; $decrypt=@mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($encrypt), MCRYPT_MODE_CBC, $iv); //解密 echo $decrypt; ?>
附言:宝塔PHP需要安装mcrypt拓展
全能资源库丨本站资源除特殊声明外,均来自于网络收集整理仅供学习研究,如需商业使用请获得作者商业授权,如果侵犯了您的合法权益,请联系我们的投诉邮箱:qinglikf@163.com,我们将在24小时内删除!如有其它疑问请联系在线客服(微信公众号:轻狸团队 丨菜单栏人工客服)特别注意:访问本站即同意本站《免责声明&版权声明》,本站原创内容未经授权禁止转载!
全能资源库 » PHP和JS的AES相互加解密方法(CryptoJS)
全能资源库 » PHP和JS的AES相互加解密方法(CryptoJS)