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新手上路(十二)
Oct 09 PHP
PHP中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
PHP伪静态写法附代码
Jun 20 PHP
php 获取远程网页内容的函数
Sep 08 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
PHP实现图片旋转效果实例代码
Oct 01 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
javascript+php实现根据用户时区显示当地时间的方法
Mar 11 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
javascript FormatNumber函数实现方法
2008/12/30 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
Python中不同进制的语法及转换方法分析
2016/07/27 Python
python如何爬取个性签名
2018/06/19 Python
python随机生成库faker库api实例详解
2019/11/28 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
人力资源部培训专员岗位职责
2014/01/02 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
法律进社区实施方案
2014/03/21 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
五一劳动节活动总结
2015/02/09 职场文书
小学班主任个人总结
2015/03/03 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python