javascript与php使用aes进行加密/解密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript与php使用aes进行加密/解密相关的知识,希望对你有一定的参考价值。

  1. javascript
    a. 下载:
    npm  install  crypto-js

    b. 代码:

    var CryptoJS = require("crypto-js");
    // 加密
    var key = CryptoJS.MD5(‘hello‘)
    key = CryptoJS.enc.Utf8.parse(key)
    var iv = CryptoJS.enc.Utf8.parse(‘1234567812345678‘)
    var encode = CryptoJS.AES.encrypt(
        ‘hello‘,
        key,
        {
            iv:iv,
            mode:CryptoJS.mode.CBC,
            padding:CryptoJS.pad.ZeroPadding
        }
    ).toString()
    console.log(encode)
    // 解密
    var bytes  = CryptoJS.AES.decrypt(
        encode,
        key,
        {
            iv:iv,
            mode:CryptoJS.mode.CBC,
            padding:CryptoJS.pad.ZeroPadding
        }
    )
    var decode = bytes.toString(CryptoJS.enc.Utf8)
    console.log(decode)

    c. 输出:

    Kfh/NXiU/7keG+t/M0j6KQ==
    hello
    [Finished in 0.5s]
  2. php
    a. 代码:
    <?php
    // 加密
    $str = "hello";
    $iv = "1234567812345678";
    $key = md5($str);
    $encode = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CBC,$iv);
    $encode = base64_encode($encode);
    echo $encode.PHP_EOL;
    // 解密
    $data = base64_decode($encode);
    $decode = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv); 
    echo(trim($decode)).PHP_EOL;

    b. 输出:

    Kfh/NXiU/7keG+t/M0j6KQ==
    hello
    [Finished in 0.2s]

以上是关于javascript与php使用aes进行加密/解密的主要内容,如果未能解决你的问题,请参考以下文章

AES加密使用Php,javascript,反之亦然

javascript 与 PHP 通信加密,使用AES 128 CBC no padding,以及ios,java,c#文章例子

AES 的 Javascript 实现与 PHP 的 mcrypt 兼容

使用 PHP mcrypt 加密后使用 Javascript CryptoJS 解密 AES

JavaScript 和 PHP 中不同的 AES 加密

crypto-js 与 php-mcrypt AES 加密/解密