欢迎光临
我们一直在努力

PHP和JS的AES相互加解密方法(CryptoJS)

HTML(index.html)代码:

Java
<!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
<?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拓展自动草稿

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《PHP和JS的AES相互加解密方法(CryptoJS)》
文章链接:https://www.xpn.cc/4466/fy.html
分享到: 更多 (0)

热门推荐

评论 抢沙发

登录

忘记密码 ?