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 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
php实现的简单压缩英文字符串的代码
Apr 24 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
PHP url 加密解密函数代码
Aug 26 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 PHP
PHP针对redis常用操作实例详解
Aug 17 PHP
Laravel实现ORM带条件搜索分页
Oct 24 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 PHP
php优化查询foreach代码实例讲解
Mar 24 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
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
JS模板实现方法
2013/04/03 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
玩转python爬虫之cookie使用方法
2016/02/17 Python
python实现excel读写数据
2021/03/02 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
python装饰器的特性原理详解
2019/12/25 Python
Keras自定义IOU方式
2020/06/10 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
接口可以包含哪些成员
2012/09/30 面试题
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
公司年会抽奖活动主持词
2014/03/31 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
安全温馨提示语大全
2015/07/14 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android
在项目中使用redis做缓存的一些思路
2021/09/14 Redis