keleesen 发布于 2017-12-02 19:05
  • php
  • 各位大神,最近在做微信支付,涉及到RSA公钥加密,于是使用了 openssl_public_encrypt()方法,但是返回的一直是false,不知道是哪里出错了,下面贴一下代码:

    1. $fp1=fopen("/iuyou.pem","r"); //公钥文件路径
    2. $public_key=fread($fp1,8192);
    3. fclose($fp1);
    4. $pu_key = openssl_pkey_get_public($public_key);//这里返回了resourceId,所以到这一步还没有出错。
    5.  
    6. $encrypted = "";
    7. openssl_public_encrypt(“hahaha2132”,$encrypted,$pu_key);
    8. $encrypted = base64_encode($encrypted);
    9. echo $encrypted;

    以上代码,$encrypted一直返回""。
    已经尝试过以下方法,但还是无解:
    将Php文件夹下的libeay32.dll和ssleay32.dll拷贝到win2008系统的system32文件夹下替换。

    另外,我使用的是PHPSTUDY2017最新版本,php版本是5.4.45+APACHE。
    非常确定OPENSSL已经开启,并且网站可以https正常访问.

    这个问题困扰我三天了,希望各位大神出出法子,跪谢!
     

    1 个回答
    • 技术QQ交流群:294088839 

      我写过一个 希望对你有帮助

      http://blog.csdn.net/drug_/article/details/78721433

      2017-12-08 17:43 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    活跃用户
    • 1
      问道摩托
    • 2
      袁广龙976丶
    • 3
      逍遥子
    • 4
      亮仔
    • 5
      芙蓉花
    • 6
      mobiledu2502871817
    • 7
      作小die_syj
    • 8
      王丽珠景平怡伦_621
    • 9
      adfa3sd5f6a
    • 10
      欣欣大妮
    PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有