【微信小程序】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)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析