PHP解密支付宝小程序的加密数据、手机号的示例代码


Posted in PHP onFebruary 26, 2021

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"}

知识点扩展:

php函数摘要-加密和解密类

1支付宝小程序手机号解密

加密数据

{
 "response": "EaieI1W9gPK0zClNbA7P0T6svaSYq/1xejihTXNVSH0WyCjBIcP2xOwaAevaYgb4aeQ5NNRQaqbZgVvfJKfaLQ==",
 "sign": "iSHQH/r3rZiBx7N49SwQNHx2Y0B6OP2ePvhS+T2XKw9+dzt3T1W9T0cHSldFlkczcdPQ05Pi/bEygsZxip6StCNEqse7ou/nXx9QOAVNoBgZfb4bmFJxOl8DYeuF8VKQy+NdxuvRGJFpmVynZtSNy31BfD4663IowMj80/pfnmLJCEKqoS2oHWtGRRM7oIFEdCH5IJKCsq79qxFEPwmQVid2uN0XuL/Rg+lKN9eAbTGcBttVZGaI11vGDEBUq9sNksVJXWUHofszCeD9jGz8pGoNvApRt8Swe2RnVtWcnQ+Zh+G105fPpp3RYNZBSBV9EJJ5la5IEv8KfAwjW7jGFg=="
}

解密函数

/**
 * 解密
 *
 * return mix
 */
function decryptData(string $encrypted_data)
{
 $key = env('EAS');
 $aesKey=base64_decode($key);
 $iv = 0;
 $aesIV=base64_decode($iv);
 $aesCipher=base64_decode($encrypted_data);
 $result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
 return $result;
}

解密过程

echo decryptData('EaieI1W9gPK0zClNbA7P0T6svaSYq/1xejihTXNVSH0WyCjBIcP2xOwaAevaYgb4aeQ5NNRQaqbZgVvfJKfaLQ==');

// {"code":"10000","msg":"Success","mobile":"1342XXXXXXX"}

到此这篇关于PHP解密支付宝小程序的加密数据,手机号的文章就介绍到这了,更多相关PHP解密支付宝小程序加密数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
php正则校验用户名介绍
Jul 19 PHP
php is_file 判断给定文件名是否为一个正常的文件
May 10 PHP
PHP $_FILES函数详解
Mar 09 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 PHP
tp5.1 框架路由操作-URL生成实例分析
May 26 PHP
php中get_object_vars()在数组的实例用法
Feb 22 #PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 #PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
Dec 30 #PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 #PHP
PHP序列化和反序列化深度剖析实例讲解
Dec 29 #PHP
PHP实现简单注册登录系统
Dec 28 #PHP
php的lavarel框架中join和orWhere的用法
Dec 28 #PHP
You might like
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
Python3 log10()函数简单用法
2019/02/19 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
python实现logistic分类算法代码
2020/02/28 Python
解决pip install psycopg2出错问题
2020/07/09 Python
简单的命令查看安装的python版本号
2020/08/28 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
汽车检测与维修个人求职信
2013/09/24 职场文书
大学生大二自我鉴定
2013/10/28 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
银行授权委托书格式
2014/10/10 职场文书
2014年销售员工作总结
2014/12/01 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis
Elasticsearch 数据类型及管理
2022/04/19 Python