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 相关文章推荐
动态新闻发布的实现及其技巧
Oct 09 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
PHP 类相关函数的使用详解
May 10 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
php常用图片处理类
Mar 16 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
php抽象类和接口知识点整理总结
Aug 02 PHP
php实例化对象的实例方法
Nov 17 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 魔术方法详解
2014/11/11 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
详解vue中axios的封装
2018/07/18 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
Javascript的this详解
2019/03/23 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
python僵尸进程产生的原因
2017/07/21 Python
flask框架视图函数用法示例
2018/07/19 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
开业庆典策划方案
2014/02/18 职场文书
技校毕业生自荐信
2014/06/03 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
公积金接收函格式
2015/01/30 职场文书
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python