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 GD绘制24小时柱状图
Jun 28 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
PHP过滤黑名单关键字的方法
Dec 01 PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
Laravel的加密解密与哈希实例讲解
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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
邮箱正则表达式实现代码(针对php)
2013/06/21 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
2015/09/10 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
Python3遍历目录树实现方法
2015/05/22 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
Python实现京东秒杀功能代码
2019/05/16 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
python字典一键多值实例代码分享
2019/06/14 Python
python set集合使用方法解析
2019/11/05 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
python 进程池pool使用详解
2020/10/15 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
匡威英国官网:Converse英国
2018/12/02 全球购物
庆七一活动总结
2014/08/27 职场文书
大学生毕业评语
2014/12/31 职场文书
音乐教师个人总结
2015/02/06 职场文书
红白喜事主持词
2015/07/06 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android