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

 5305

这篇文章主要介绍了PHP解密支付宝小程序的加密数据、手机号的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


1、小程序端代码示例

  1. my.getPhoneNumber({
  2.     success: (res) => {
  3.         let encryptedData = res.response;
  4.         my.httpRequest({
  5.             url: '你的后端服务端',
  6.             data: encryptedData,
  7.         });
  8.     },
  9.     fail: (res) => {
  10.         console.log(res);
  11.         console.log('getPhoneNumber_fail');
  12.     },
  13. });

2、PHP后端解密示例

  1. public static function decryptData($encryptedData, $key = '开发设置-接口内容加密方式-查看-字符串')
  2. {
  3.     $encrys = json_decode($encryptedData, true);
  4.     $encryptedData = $encrys['response'];
  5.     $str = base64_decode($encryptedData);
  6.     $screct_key = base64_decode($key);
  7.     //设置全0的IV
  8.     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
  9.     $iv = str_repeat("\0", $iv_size);
  10.     $decrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC, $iv);
  11.     $decrypt_str = self::stripPKSC7Padding($decrypt_str);
  12.     return $decrypt_str;
  13. }
  14. public static function stripPKSC7Padding($source)
  15. {
  16.     $char = substr($source, -1);
  17.     $num = ord($char);
  18.     if ($num == 62) return $source;
  19.     $source = substr($source, 0, -$num);
  20.     return $source;
  21. }

3、解密返回

  1. {"code":"10000","msg":"Success","mobile":"185xxxxx111"}


知识点扩展:

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

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

加密数据

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

解密函数

  1. /**
  2.  * 解密
  3.  *
  4.  * return mix
  5.  */
  6. function decryptData(string $encrypted_data)
  7. {
  8.     $key = env('EAS');
  9.     $aesKey=base64_decode($key);
  10.     $iv = 0;
  11.     $aesIV=base64_decode($iv);
  12.     $aesCipher=base64_decode($encrypted_data);
  13.     $result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
  14.     return $result;
  15. }

解密过程

  1. echo decryptData('EaieI1W9gPK0zClNbA7P0T6svaSYq/1xejihTXNVSH0WyCjBIcP2xOwaAevaYgb4aeQ5NNRQaqbZgVvfJKfaLQ==');
  2. // {"code":"10000","msg":"Success","mobile":"1342XXXXXXX"}



本文网址:https://www.zztuku.com/detail-8705.html
站长图库 - PHP解密支付宝小程序的加密数据、手机号的示例代码
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐