- 81浏览
- 2022-09-09
假设您已经获得了用户的加密数据(encryptedData)、初始向量(iv)、session_key和appid:
<?php
namespace app\index\controller;
use think\Controller;
class WXPhoneUtil extends Controller {
/**
* 解密微信用户手机号
*
* @param string $encryptedData 加密数据
* @param string $sessionKey 会话密钥
* @param string $iv 初始向量
* @return string
* @throws Exception
*/
public function decodePhone($encryptedData, $sessionKey, $iv) {
$encryptedData = base64_decode($encryptedData);
$sessionKey = base64_decode($sessionKey);
$iv = base64_decode($iv);
$decryptedData = ''; // 解密后的数据
$errorCode = openssl_decrypt($encryptedData, 'AES-128-CBC', $sessionKey, OPENSSL_RAW_DATA, $iv, $decryptedData);
if ($errorCode == 0) {
$decryptedData = json_decode($decryptedData, true);
return $decryptedData['phoneNumber'];
} else {
throw new Exception('解密失败');
}
}
}
以上是一个基本的TP5.0代码,具体实现需要根据实际业务需求进行调整和完善。需要注意的是,以上代码需要依赖OpenSSL扩展,以支持AES-128加密算法。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。