PHP解密支付宝小程序的加密数据,手机号等。
2024-09-18 17:10:19
1.小程序端代码示例
my.getPhoneNumber({
success: (res) => {
let encryptedData = res.response;
my.httpRequest({
url: '你的后端服务端',
data: encryptedData,
});
},
fail: (res) => {
console.log(res);
console.log('getPhoneNumber_fail');
},
});
2.PHP后端解密示例
public static function decryptData($encryptedData, $key = '开发设置-接口内容加密方式-查看-字符串')
{
$encrys = json_decode($encryptedData, true);
$encryptedData = $encrys['response'];
$str = base64_decode($encryptedData);
$screct_key = base64_decode($key); //设置全0的IV
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = str_repeat("\0", $iv_size); $decrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC, $iv);
$decrypt_str = self::stripPKSC7Padding($decrypt_str);
return $decrypt_str;
} public static function stripPKSC7Padding($source)
{
$char = substr($source, -1);
$num = ord($char);
if ($num == 62) return $source;
$source = substr($source, 0, -$num);
return $source;
}
3.解密返回
{"code":"10000","msg":"Success","mobile":"185xxxxx111"}
最新文章
- 如何合并两个Docker 镜像
- javap查看class文件
- C#之正则表达式、异常处理和委托与事件
- 【leetcode】Binary Tree Zigzag Level Order Traversal (middle)
- Label Font 字体样式设置
- TJI读书笔记13-内部类
- Linux CP文件夹略过目录的解决
- xmind的第四天笔记
- LR录制测试脚本
- asp.net 后台获取flv视频地址进行播放【转】
- 巧用CSS文件愚人节恶搞(转)
- Python Socket单线程+阻塞模式
- Hacker(十)----常用入侵工具
- hdoj 2620 Bone Collector(0-1背包)
- Java开源连接池c3p0的基本用法
- 双11线上压测netty内存泄露
- 剑指Offer 51. 构建乘积数组 (数组)
- logminer使用测试库进行挖掘分析,10.2.0.5
- python输出缓冲区的问题
- 52.tableViewCell重用机制避免重复显示问题