PHP中OpenSSL加密问题整理


Posted in PHP onDecember 14, 2017

最近公司项目中有需要用到OpenSSL的加密和java端进行接口验证,再测试环境升级到PHP7的时候加密会出现错误,后来多方面检查终于找到原因所在:

PHP7环境下把openssl_get_privatekey方法换成openssl_pkey_get_private

需要转换一下秘钥,window环境和Linux环境下的秘钥格式有区别(暂时不确定是不是操作系统的关系)

PHP的秘钥验证需要加上头尾。

这里贴上附属方法

转换秘钥格式的方法:

function transJavaRsaKeyToPhpOpenSSL($content) {
    if ($content) {
      return trim(chunk_split($content, 64, "\n"));
    }
    return false;
  }

加头尾的方法:

function appendFlags($content, $isPublic = true) {
    if ($isPublic) {
      return "-----BEGIN PUBLIC KEY-----\n" . $content . "\n-----END PUBLIC KEY-----\n";
    }
    else {
      return "-----BEGIN PRIVATE KEY-----\n" . $content . "\n-----END PRIVATE KEY-----\n";
    }
  }

以上就是本次遇到OPENSSL加密问题的小经验,大家还有问题的话在下方留言讨论吧。

PHP 相关文章推荐
用PHP和ACCESS写聊天室(四)
Oct 09 PHP
处理php自动反斜杠的函数代码
Jan 05 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 #PHP
THINKPHP3.2使用soap连接webservice的解决方法
Dec 13 #PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 #PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 #PHP
实例分析PHP中PHPMailer发邮件
Dec 13 #PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 #PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 #PHP
You might like
php项目打包方法
2008/02/18 PHP
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
js选项卡的制作方法
2017/01/23 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
Python分类测试代码实例汇总
2020/07/23 Python
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
偷看我的初中毕业鉴定
2014/01/29 职场文书
体育教师自我鉴定
2014/02/12 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
四风问题对照检查材料
2014/09/22 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
JavaScript实例 ODO List分析
2022/01/22 Javascript
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python