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实现多服务器共享SESSION数据的方法
Mar 16 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
PHP+jQuery实现自动补全功能源码
May 15 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
php输出全球各个时区列表的方法
Mar 31 PHP
Nginx下ThinkPHP5的配置方法详解
Aug 01 PHP
PHP实现的简单在线计算器功能示例
Aug 02 PHP
利用php + Laravel如何实现部署自动化详解
Oct 11 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 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实现选择排序的解决方法
2013/05/04 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
python获取外网ip地址的方法总结
2015/07/02 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
Python标准库shutil用法实例详解
2018/08/13 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
python Selenium 库的使用技巧
2020/10/16 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
本科生学习总结的自我评价
2013/10/02 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
运动会100米加油稿
2015/07/21 职场文书
初中政治教师教学反思
2016/02/23 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang