溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JS實(shí)現(xiàn)AES加密并與PHP互通的方法分析

發(fā)布時(shí)間:2020-09-01 10:26:31 來源:腳本之家 閱讀:201 作者:momo_mutou 欄目:web開發(fā)

本文實(shí)例講述了JS實(shí)現(xiàn)AES加密并與PHP互通的方法。分享給大家供大家參考,具體如下:

有關(guān)數(shù)據(jù)加密解密問題,有很多鐘加密方式;

這里我講述下js和php實(shí)現(xiàn)AES互通

js加密:

首先引入這幾個(gè)js文件

本站下載地址

<script type="text/JavaScript" src="/CryptoJS/aes.js"></script>
<script type="text/javascript" src="/CryptoJS/pad-zeropadding.js"></script>
<script type="text/javascript">
var data="test";//加密字符串
var key = CryptoJS.enc.Latin1.parse('@12345678912345!');//密鑰
var iv = CryptoJS.enc.Latin1.parse('@12345678912345!');//與密鑰保持一致
//加密
var data = JSON.stringify(data);//將數(shù)據(jù)對象轉(zhuǎn)換為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和加密的時(shí)候一致
 var decrypted = CryptoJS.AES.decrypt(data,key,{iv:iv,padding:CryptoJS.pad.ZeroPadding});
 decrypted=decrypted.toString(CryptoJS.enc.Utf8);
 document.write(decrypted);//輸出解密后的數(shù)據(jù)
</script>

注意:在實(shí)際用的時(shí)候和php傳輸中,js加密后的字符串里面的+被瀏覽器解析成了空格  然后php解密的時(shí)候出錯(cuò);這里可以對加密之后的字符串做進(jìn)一步處理encrypted=encodeURIComponent(encrypted);就沒有這個(gè)問題了

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");//注意!解密出來的數(shù)據(jù)后面會出現(xiàn)六個(gè)紅點(diǎn);這句代碼可以處理掉,從而不影響進(jìn)一步的數(shù)據(jù)操作
return $decrypted;

PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

BASE64編碼解碼工具:
http://tools.jb51.net/transcoding/base64

密碼安全性在線檢測:
http://tools.jb51.net/password/my_password_safe

高強(qiáng)度密碼生成器:
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

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript加密解密技巧匯總》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI