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 相关文章推荐
BBS(php & mysql)完整版(八)
Oct 09 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
PHP JSON 数据解析代码
May 26 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 PHP
PHP访问Google Search API的方法
Mar 05 PHP
php的4种常见运行方式
Mar 20 PHP
php利用事务处理转账问题
Apr 22 PHP
PHP多文件上传实例
Jul 09 PHP
PHP7常量数组用法分析
Sep 26 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
laravel中的一些简单实用功能
Nov 03 PHP
php 实现银联商务H5支付的示例代码
Oct 12 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
2020最新CPU的性能排名
2020/04/02 数码科技
Yii框架函数简单用法分析
2019/09/09 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
基于scrapy的redis安装和配置方法
2018/06/13 Python
python如何将多个PDF进行合并
2019/08/13 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
python中判断文件结束符的具体方法
2020/08/04 Python
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
采购主管工作职责
2013/12/12 职场文书
青年文明号复核材料
2014/02/11 职场文书
诚信考试倡议书
2014/04/15 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
2015年数学教研工作总结
2015/07/22 职场文书