php微信银行卡rsa加密,企业付款到银行卡用RSA公钥加密银行卡号失败

获取RSA加密公钥成功,但是用函数openssl_pkey_get_public()处理总是返回false不知道是怎么回事?用的是PHP开发,

这是获取到的公钥,是不是获取的公钥有问题,大神们帮忙看一下吧,下边是获取的RSA公钥和需要执行的方法

-----BEGIN RSA PUBLIC KEY-----

MIIBCgKCAQEArF2OB8jWqEKFzeF93CL6e4wgn+qoyUkVJkyvcBqfYS5TqlJ5KbSL

V/+rigkTzvHQV1Jx+gp9EY3utsKVwBPqeI6CZHyrEXb/Bz/nmkpZN6zwEudFVomI

eauQRDJnlxhmOl9VpK5eQBXNK3DjqqF/55gVlnmUO2jaQY2ozWroUQYBb3Nh9JIm

hORjwGwUgtcCFUWRMPzeUajDOxfGbgntJOT9gbY6ToBrUr9KWaHih6QCSCqmwaVk

dCLbwgoosiIGcgNtxPs5WjQ3MJYr+zF+DxPmu0Tv9/vLQpJruuct2GXEYh6Zwu+a

SSS+sFDNyRIO6rRjiipAEyh2kPabmjlg9QIDAQAB

-----END RSA PUBLIC KEY-----

/**

* 公钥加密,银行卡号和姓名需要RSA算法加密

* @param string $data  需要加密的字符串,银行卡/姓名

* @return null|string  加密后的字符串

*/

private function publicEncrypt($data)

{

// 进行加密

$pubkey = openssl_pkey_get_public(file_get_contents(ROOT_PATH.'/'.$this->wechat->mchId.'_publicrsa.pem'));

// $pubkey是false 下面的加密流程更没法执行

$encrypt_data = '';

$encrypted = '';

$res = openssl_public_encrypt($data,$encrypt_data,$pubkey,OPENSSL_PKCS1_OAEP_PADDING);

if($res){//加密成功,返回base64编码的字符串

return base64_encode($encrypted.$encrypt_data);

}else{

return false;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值