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 相关文章推荐
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
php通过ajax实现双击table修改内容
Apr 28 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
php将access数据库转换到mysql数据库的方法
Dec 24 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
Yii2语言国际化自动配置详解
Aug 22 PHP
php解决crontab定时任务不能写入文件问题的方法分析
Sep 16 PHP
实例讲解PHP表单
Jun 10 PHP
PHP7移除的扩展和SAPI
Mar 09 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 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
基于Jquery的简单&简陋Tabs插件代码
2010/02/09 Javascript
js的逻辑运算符 ||
2010/05/31 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
Python实现的简单万年历例子分享
2014/04/25 Python
Python的requests网络编程包使用教程
2016/07/11 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
Python super()方法原理详解
2020/03/31 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
文员岗位职责
2015/02/04 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL