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编程中字符串处理的5个技巧小结
Nov 13 PHP
php的curl实现get和post的代码
Aug 23 PHP
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
php强制用户转向www域名的方法
Jun 19 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
自制PHP框架之路由与控制器
May 07 PHP
php中文语义分析实现方法示例
Sep 28 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 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高级OOP技术演示
2009/08/27 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
php通过session防url攻击方法
2014/12/10 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
基于jquery的动态创建表格的插件
2011/04/05 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
python分割和拼接字符串
2013/11/01 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
无工作经验者个人求职信范文
2013/12/22 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
大学毕业生个人总结
2015/02/28 职场文书
项目备案申请报告
2015/05/15 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书