crypto-js与php aes加密传输

CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括:

  • MD5
  • SHA-1
  • SHA-256
  • AES
    ....
    这里我们演示aes对称加密数据传输,下面列出crypto-js的几个重要链接

github项目地址
https://github.com/brix/crypto-js
文档
https://github.com/brix/crypto-js/blob/master/docs/QuickStartGuide.wiki
源码地址
https://github.com/brix/crypto-js/releases

js端



    
    Title
    
    





php端
/**加密
     * @param $data
     * @return string
     */
    function encrypt($data)
    {
        $key = "1234567887654321";//秘钥必须为:8/16/32位
        $iv = "1234567887654321";
        $base64_str = base64_encode(json_encode($data));
        $encrypted = openssl_encrypt($base64_str, "aes-128-cbc", $key, OPENSSL_ZERO_PADDING, $iv);
        return base64_encode($encrypted);
    }


    /**解密
     * @param $data
     * @return mixed
     */
    function decrypt($data)
    {
        $encrypted = base64_decode($data);
        $key = "1234567887654321";//秘钥必须为:8/16/32位
        $iv = "1234567887654321";
        $decrypted = openssl_decrypt($encrypted, 'aes-128-cbc', $key, OPENSSL_ZERO_PADDING, $iv);
        return json_decode(base64_decode($decrypted), true);
    }

$data = ['username'=>'admin','pwd'=>'admin'];  
$encrypt=encrypt($data);
$str=decrypt($encrypt);
var_dump($str);

你可能感兴趣的:(crypto-js与php aes加密传输)