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

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

 

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

 

 

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!
2.本站部分资源包有加密,加密统一密码为:www.51zhanma.cn
3. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
4. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
5. 如果您也有好的资源或教程,您可以投稿发布,用户购买后有销售金额的80%以上的分成收入!
6.如有侵权请联系客服邮件kefu@zhanma.cn
站码网 » PHP解密支付宝小程序的加密数据、手机号的示例代码

发表评论

  • 1808本站运营(天)
  • 1943会员数(个)
  • 5310资源数(个)
  • 1287评论数(个)
  • 0 近 30 天更新(个)
加入 VIP