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的ASP防火墙
Oct 09 PHP
在PHP里得到前天和昨天的日期的代码
Aug 16 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
php远程下载类分享
Apr 13 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
PHP实现APP微信支付的实例讲解
Feb 10 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
Joomla使用Apache重写模式的方法
2016/05/04 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python实现登陆文件验证方法
2018/10/06 Python
python tkinter控件布局项目实例
2019/11/04 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
商务英语专业毕业生自荐信
2013/11/05 职场文书
护理专业推荐信
2013/11/07 职场文书
元宵节主持词
2014/03/25 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
招标保密承诺书
2015/01/20 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书