牛骨文教育服务平台(让学习变的简单)
博文笔记

AES/CryptoJS/PHP 加密解密

创建时间:2017-05-03 投稿人: 浏览次数:1034

最近做前后端加密通信,准备采用AES对称加密。遇到一些问题,折腾了半个月,终于找到解决方案。


PHP代码

    $text = "After all, tomorrow is another day.";
    $key = pack("H*", "e10adc3949ba59abbe56e057f20f883e");  //md5("123456")
    $iv   = pack("H*", "1234567890abcdef1234567890abcdef");
    
    $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);
    $encrypted = base64_encode($encrypted);
    var_dump($encrypted);
    
    $dncrypted = base64_decode($encrypted);
    $dncrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $dncrypted, MCRYPT_MODE_CBC, $iv);
    $dncrypted = trim($dncrypted);
    var_dump($dncrypted);

JS代码

    var text = "After all, tomorrow is another day.";
    var key = CryptoJS.enc.Hex.parse("e10adc3949ba59abbe56e057f20f883e");  //md5("123456")
    var iv  = CryptoJS.enc.Hex.parse("1234567890abcdef1234567890abcdef");

    var opinion = {iv:iv, padding:CryptoJS.pad.ZeroPadding};
    
    var encrypted = CryptoJS.AES.encrypt(text, key, opinion);
    encrypted = encrypted.toString();
    console.log(encrypted);
    
    var decrypted = CryptoJS.AES.decrypt(encrypted, key, opinion);
    decrypted =  decrypted.toString(CryptoJS.enc.Utf8);
    console.log(decrypted);

记得引用CryptoJS

<script type="text/javascript" src="http://cdn.bootcss.com/crypto-js/3.1.9/crypto-js.js"></script>
<script type="text/javascript" src="http://cdn.bootcss.com/crypto-js/3.1.9/aes.js"></script>


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。