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 相关文章推荐
特详细的PHPMYADMIN简明安装教程
Aug 01 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
基于php split()函数的用法详解
Jun 05 PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
PHP面试题之文件目录操作
Oct 15 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
PHP实现小偷程序实例
Oct 31 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
PHP 对象继承原理与简单用法示例
Apr 21 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
PHP5中MVC结构学习
2006/10/09 PHP
php下连接mssql2005的代码
2011/01/17 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
js可突破windows弹退效果代码
2008/08/09 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
js实现图片上传并预览功能
2018/08/06 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
Python 字符串大小写转换的简单实例
2017/01/21 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python里dict变成list实例方法
2019/06/26 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
python 调用Google翻译接口的方法
2020/12/09 Python
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
工程部经理岗位职责
2013/12/08 职场文书
保研推荐信
2014/05/09 职场文书
财务检查整改报告
2014/11/06 职场文书
2014年城管工作总结
2014/11/20 职场文书
汇报材料怎么写
2014/12/30 职场文书
社区文明倡议书
2015/04/28 职场文书
创业计划书之甜品店
2019/09/18 职场文书
python实现简单聊天功能
2021/07/07 Python
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏