js与php之间AES加密解密

js与php之间AES加密解密

js与php之间AES加密解密

网上很多博客写了php与js的对称加密与解密aes,但是有很多坑,今天我写了一个可以切实可行的js与php加密解密的代码,代码可在线运行,非常方便

首先是js的aes加密

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>BFW NEW PAGE</title>
    <script id="bfwone" data="dep=jquery.17|crypto-js-3.1.9-1/crypto-js|crypto-js-3.1.9-1/pad-zeropadding&err=0" type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/bfwone.js"></script>
    <script type="text/javascript">
        bready(function() {

            var iv = 'httpwww.bfw.wiki';

            var data = "it在线开发环境 bfwstuio";
            console.log('JS加密前:'+data);
            var key = CryptoJS.enc.Utf8.parse('www.bfw.wikihttp');
            var ivv = CryptoJS.enc.Utf8.parse(iv);
            var encrypted = CryptoJS.AES.encrypt(data, key, {
                iv: ivv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding
            });
            data = encrypted.toString();
            console.log('JS加密后:'+data);
            $("#enc_txt").html(data);




            var decrypted = CryptoJS.AES.decrypt(data, key, {
                iv: ivv, padding: CryptoJS.pad.ZeroPadding
            });
            var rest = decrypted.toString(CryptoJS.enc.Utf8);
            console.log('JS解密后数据:'+rest);




        });
    </script>
</head>
<body>
    <div id="enc_txt">

    </div>
</body>
</html>

js加密后传给php,后端的aes解密代码

<?php
$data = 'it在线开发环境 bfwstuio';
$key = 'www.bfw.wikihttp';
$methon = 'AES-128-CBC';
$iv = "httpwww.bfw.wiki";
$decrypted = base64_encode(openssl_encrypt($data, $methon, $key, 1, $iv)); //加密
echo 'PHP加密后:'.$decrypted;


$jsencodedata = "XRP4t0mMLrEKlAhB60mqSR7GTEsE4OfR+pGpPxu5Oxo=";
$decrypted = openssl_decrypt($jsencodedata, 'AES-128-CBC', $key, OPENSSL_ZERO_PADDING, $iv); // 解密
echo 'PHP解密后:'.$decrypted;
?>

ok,代码可以在线编辑运行,不用复制到本地就可看到效果

{{collectdata}}

网友评论0