微信文档中原文
3.1 解密说明
实名数据的加密方式使用AES的CBC模式,iv使用加解密钥,填充使用PKCS7Padding,最后使用base64进行编码。
解密时,先进行base64解码,然后使用密钥及AES/CBC/PKCS7Padding进行解密。 密钥在申请实名接口权限时,会提供到申请方。
然后我实现的时候发现,AES/CBC/PKCS7Padding 解需要原数据、key、iv
现在原数据已经有了,就是接口下发的数据 base64 解一下,iv 说是密钥,那么 key 是什么?在哪里获得?找了很久没发现哪里有提到,求教
你好,iv和key是同一个参数,可以试试如下的办法:
https://developers.weixin.qq.com/community/develop/article/doc/000266a74f8c788a5e9a1626351013
python demo
老哥救命,这个iv我也找不到哪有
解密java 版:https://thinkcode.blog.csdn.net/article/details/108822436
怎么发邮件问?我也有解密的问题。
同问,太坑了,AES 和CBC的加密参数也没有提供,只能发邮件问问
php7不支持下面那些mcrypt方法,需要用openssl_decrypt替代
public function decode()
{
$key = 'XXXXXXX';
$text = file_get_contents('./uploads/code.txt');
$text = base64_decode($text);
$module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
$iv = substr($key, 0, 16);
mcrypt_generic_init($module, $key, $iv);
//解密
$decrypted = mdecrypt_generic($module, $text);
mcrypt_generic_deinit($module);
mcrypt_module_close($module);
$pkc_encoder = new \PKCS7Encoder;
$result = $pkc_encoder->decode($decrypted);
debug($result);
}
php7方法,待测试
$decrypted = openssl_decrypt($text, 'AES-128-CBC', $key, OPENSSL_CIPHER_AES_128_CBC, $key);
$pkc_encoder = new \PKCS7Encoder;
$result = $pkc_encoder->decode($decrypted);
debug($result);