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 ob_flush,flush在ie中缓冲无效的解决方法
May 09 PHP
一个PHP分页类的代码
May 18 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
如何用php获取文件名后缀
Jun 09 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
php显示时间常用方法小结
Jun 05 PHP
ubuntu下配置nginx+php+mysql详解
Sep 10 PHP
php实现简单加入购物车功能
Mar 07 PHP
PHP getDocNamespaces()函数讲解
Feb 03 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
再谈javascript原型继承
2014/11/10 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
解析vue中的$mount
2017/12/21 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
美德少年事迹材料
2014/01/23 职场文书
小学校本培训方案
2014/06/06 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
python某漫画app逆向
2021/03/31 Python
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python