前段时间开发支付宝小程序遇到的问题,在这里记录一下,以后备用,建议在看下面内容之前先阅读这几篇文章了解一下对称加密和
openssl
1.问题
在开发支付宝小程序获取用户手机号功能的时候,解密接口返回的数据失败,支付宝官方 sdk
加密代码如下:
<?php
/**
* 加密工具类
*
* User: jiehua
* Date: 16/3/30
* Time: 下午3:25
*/
/**
* 加密方法
* @param string $str
* @return string
*/
function encrypt($str, $screct_key)
{
//AES, 128 模式加密数据 CBC
$screct_key = base64_decode($screct_key);
$str = trim($str);
$str = addPKCS7Padding($str);
//设置全0的IV
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = str_repeat("\0", $iv_size);
$encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC, $iv);
return base64_encode