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

admin3年前PHP教程58

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解密支付宝小程序加密数据内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

低价高防服务器怎么租用?国内高防服务器如何选择合适的?

对于高防服务器也不难理解,就是指防御高的服务器。具体一点就是指独立单个硬防防御10G,15G,20G,25G,30G,35G,40G左右,这种高防以前主要是针对企业客户,主要是为高端的企业客户服务。高...

杭州高防服务器购买怎么选择

在购买杭州高防服务器时,您可以考虑以下几个方面进行选择:服务器性能和配置:根据您的实际需求,选择适合的服务器配置,例如处理器、内存、硬盘、带宽等。如果您需要处理大量数据或高并发访问,需要选择性能更高的...

浅谈PHP设计模式之门面模式Facade

目录目的UML代码测试目的Facade通过嵌入多个(当然,有时只有一个)接口来解耦访客与子系统,同时也为了降低复杂度。Facade 不会禁止你访问子系统你可以(应该)为一个子系统提供多个 Facade...

如何理解PHP核心特性命名空间

目录提出定义使用限定符在内部访问命名空间转义\符号提出PHP 在 5.3 后提出了命名空间用来解决组件之间的命名冲突问题,主要参考了文件系统的设计:同一个目录下不允许有相同的文件名 - 同一个命名空间...

PHP如何限制定时任务的进程数量

前言现在的工作中,经常要写一些脚本做一些异步的操作。一般是大量的数据修改,或者解决部分并发问题。为了能够稳定的做好数据处理,一般情况下会用定时脚本的方式。那么问题来了。可能存在的问题当我们处理大量数据...

如何用PHP实现分布算法之一致性哈希算法

目录传统算法缺陷算法思想算法实现总结传统算法缺陷对于服务器分布,我们要考虑的东西有如下三点:数据平均分布,查找定位准确,降低宕机影响。传统算法一般是将数据的键用算法映射出数字,对其用服务器数量取模,并...