【微信小程序】AES 加密接口參數


AES 加密算法

cryptojs.js (加密算法庫)

secret.js (封裝的函數)我放到了 /utils 里面

var crypto = require("../../utils/secret.js");

加密方法

crypto.encrypted(JSON.stringify({
        member_id: member_id,
        order_no: that.data.order_no,
        password: pass,
    })) // 先將參數轉換成 JSON 字符串,然后使用封裝的 encrypted 函數加密
},

接口響應 code == 0 時,需要根據響應參數對 data 解密

res.data= crypto.decrypted(res.data.data);

示例

var crypto = require("../../utils/secret.js");
var en = crypto.encrypted(JSON.stringify({code : 1, data :{id :1, name : '12123', time: '2022-01-22 12123123112'}, msg:'success'}));
console.log(en);
console.log( JSON.parse(crypto.decrypted(en)));

PHP (服務端需要開啟 openssl 擴展)

/**
 * AES CBC加密算法
 * @param sSrc 加密原文字符串
 * @param sKey 加密密鑰 16位字符串
 * @param sIv 加密向量 16位字符串
 * @return 加密后密文數據再轉Base64字符串
 * @throws Exception
 */
function encrypt_CBC($sSrc) {
    $sKey = "1096c6******90bf";
    $sIv = "59f69******4bd0f";
    $encrypted = openssl_encrypt($sSrc, "aes-128-cbc", $sKey, OPENSSL_RAW_DATA, $sIv);
    // 此處使用BAES64做轉碼功能,加密后的字節數組通過BASE64轉換位字符串
    return base64_encode($encrypted);
}

/**
 * AES CBC解密算法
 * @param sSrc 解密密文字符串
 * @param sKey 解密密鑰 16位字符串
 * @param sIv 解密向量 16位字符串
 * @return 解密后原文數據字符串
 * @throws Exception
 */
function decrypt_CBC($sSrc){
    $sKey = "1096c6******90bf";
    $sIv = "59f69******4bd0f";
    $output = openssl_decrypt(base64_decode($sSrc), 'aes-128-cbc', $sKey, OPENSSL_RAW_DATA, $sIv);
    return json_decode($output, true);//字節數據轉字符串得出原文
}

[AES加密算法的詳細介紹與實現](https://blog.csdn.net/qq_28205153/article/details/55798628)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM