当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-04-12 08:50:40 浏览: 评论:0 

这篇文章主要介绍了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.  
  8.  //设置全0的IV 
  9.  $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); 
  10.  $iv = str_repeat("\0"$iv_size); 
  11.  
  12.  $decrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key$str, MCRYPT_MODE_CBC, $iv); 
  13.  $decrypt_str = self::stripPKSC7Padding($decrypt_str); 
  14.  return $decrypt_str
  15.  } 
  16.  
  17.  public static function stripPKSC7Padding($source
  18.  { 
  19.  $char = substr($source, -1); 
  20.  $num = ord($char); 
  21.  if ($num == 62) return $source
  22.  $source = substr($source, 0, -$num); 
  23.  return $source
  24.  } 

3.解密返回

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

知识点扩展:

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

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

加密数据

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

解密函数

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

解密过程

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

Tags: PHP解密支付宝小程序

分享到: