PHP接口请求加密前端JS解密实用方案代码
分类:实用代码
时间:2023-04-13 14:28
浏览:0
评论:0
前端代码:
// 这个是加密用的 function encrypt(text){ var key = CryptoJS.enc.Utf8.parse('1234567890654321'); //为了避免补位,直接用16位的秘钥 var iv = CryptoJS.enc.Utf8.parse('1234567890123456'); //16位初始向量 var encrypted = CryptoJS.AES.encrypt(text, key, { iv: iv, mode:CryptoJS.mode.CBC, padding:CryptoJS.pad.Pkcs7 }); return encrypted.toString(); } encrypt(123); // AMFSKTJa3K092qSi5XC46w== // 这个是解密用的 function decrypt (text) { var key = CryptoJS.enc.Utf8.parse('1234567890654321'); //为了避免补位,直接用16位的秘钥 var iv = CryptoJS.enc.Utf8.parse('1234567890123456'); //16位初始向量 var encrypted = CryptoJS.AES.decrypt(text, key, { iv: iv, mode:CryptoJS.mode.CBC, padding:CryptoJS.pad.Pkcs7 }); return encrypted.toString(CryptoJS.enc.Utf8); }
php代码:
// 加密用的 // 参数1,为数据,参数2为加密算法,AES里最安全的一种 $a = openssl_encrypt('123', 'aes-128-cbc', '1234567890654321', 1, '1234567890123456'); echo base64_encode($a); // AMFSKTJa3K092qSi5XC46w== // 解密用的 $b = openssl_decrypt($encrypted, 'aes-128-cbc', $key, 0 , $iv); echo $b; // 其中,加密方法的第四个参数为1,而解密的第四个参数为0,不然解密不了
这样可以实现js加密结果和php加密结果一致,而且两者都能互相解密
另,其他参数不变情况下,修改js的 padding为 CryptoJS.pad.ZeroPadding 会是加密结果不同,但确可以php的 openssl_decrypt 解密,且解密结果一样。
1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 实用代码 > PHP接口请求加密前端JS解密实用方案代码
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 实用代码 > PHP接口请求加密前端JS解密实用方案代码