php中openssl_pkey_get_private()函数遇到false的问题 解决办法
今天用openssl_pkey_get_private()函数遇到了一个大坑:
如果你的私钥文件(private_key.pem)是
-----BEGIN PRIVATE KEY-----字符串字符串-----END PRIVATE KEY-----
要是私钥文件的字符串全部写在一行 此函数就会返回false,我的php版本是5.6版本的
正常使用两种办法
1.$privateKey = openssl_pkey_get_private($privateKey);
2.$privateKey = openssl_pkey_get_private(file_get_contents($privateKey));
尤其第二种很容易遇到问题而导致返回false. 原因不明.
解决方案:只需要把文件中的字符串换行就好,如下所示
-----BEGIN PRIVATE KEY-----
字符串字符串
字符串字符串
-----END PRIVATE KEY-----
以下两段代码.不同环境下都能用.有时候返回false换另一种试试
代码一
$pem = "-----BEGIN RSA PRIVATE KEY-----\n" .$content."\n-----END RSA PRIVATE KEY-----";
$pkeyid = openssl_pkey_get_private($pem);
openssl_sign($data,$sign,$pkeyid,OPENSSL_ALGO_MD5);
$t=base64_encode($sign);
代码二(特别注意换行)
$content=chunk_split($content, 64, "\n");
$pem = "-----BEGIN RSA PRIVATE KEY-----\n" .$content."-----END RSA PRIVATE KEY-----";
$pkeyid = openssl_pkey_get_private($pem);
openssl_sign($data,$sign,$pkeyid,OPENSSL_ALGO_MD5);
$t=base64_encode($sign);
php中openssl_pkey_get_private()函数遇到false的问题 解决办法的更多相关文章
- 配置IIS提示打开目录浏览时的问题:未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的解决办法
错误消息: 未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的 ...
- 关于pycharm中pip版本10.0无法使用的解决办法
背景: 近期在利用 pycharm 安装第三方库时会提示 pip 不是最新版本, 因此对 pip 进行更新,但是生成最新版本之后, pip 中由于缺少 main 函数,导致在 pycharm 中无法自 ...
- vue中router-link的click事件失效的解决办法
title: vue中router-link的click事件失效的解决办法 toc: false date: 2018-12-04 16:28:49 categories: Web tags: vue ...
- [转]iOS Safari 中click点击事件失效的解决办法
iOS Safari 中click点击事件失效的解决办法 问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素 ...
- python matplotlib plot 数据中的中文无法正常显示的解决办法
转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...
- eclipse中的js文件报错的解决办法
在使用别人的项目的时候,导入到eclipse中发现js文件报错,解决办法是关闭eclipse的js校验功能. 三个步骤: 1. 右键点击项目->properties->Validation ...
- Spring MVC普通类或工具类中调用service报空空指针的解决办法(调用service报java.lang.NullPointerException)
当我们在非Controller类中应用service的方法是会报空指针,如图: 这是因为Spring MVC普通类或工具类中调用service报空null的解决办法(调用service报java.la ...
- Android 在 Fragment 中使用 getActivity() NullPointException 的思考和解决办法
问题: 使用 AS 在 Fragment 中调用 getActivity() 方法的时候会出现可能为空指针的提醒 使用 monkey 多次十万次测试,会出现 getActivity() NullPoi ...
- linux中没有dos2UNIX或者UNIX2dos命令怎么解决办法
linux中没有dos2UNIX或者UNIX2dos命令怎么解决办法 http://blog.csdn.net/w616589292/article/details/38274475 dos2unix ...
随机推荐
- NumPy 数组创建
章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...
- Bean 注解(Annotation)配置(2)- Bean作用域与生命周期回调方法配置
Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of ...
- 基于Ambari的WebUI部署HBase服务
基于Ambari的WebUI部署HBase服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署Ambari服务 博主推荐阅读: https://www.cnblogs.co ...
- UVA - 11491 Erasing and Winning(奖品的价值)(贪心)
题意:有一个n位整数(不以0开头),要求删除其中的d个数字,使结果尽量大.(1<=d<n<=10^5) 分析: 1.从头扫一遍,如果当前填的数字小于n-d,则将当前数字填上. 2.如 ...
- 20180122 PyTorch学习资料汇总
PyTorch发布一年团队总结:https://zhuanlan.zhihu.com/p/33131356?gw=1&utm_source=qq&utm_medium=social 官 ...
- arduino双机通信 (解决引脚不够用)
作用 实现将一个 arduino 中的多个 String 类型变量准确地传到另一个 arduino 中对应的多个 String 类型变量 中. 接线图 注意 TX 接另一个arduino的 RX !可 ...
- 18 react react-redux 的编写 TodoList
1. 安装 react-redux yarn add react-redux 2. react-redux 编写 TodoList 使所有子组件 都能使用 store #index.js import ...
- 路由反射器(RR)配置
IBGP与EBGP的区别:是否使用指定源(update-source) 路由反射器(RR)配置: 零:关闭同步,关闭自动汇总. ①:启用BGP ②:在相同BGP-AS下建立邻居. ③:指定路由器及所在 ...
- python利用百度云接口实现车牌识别
一个小需求---实现车牌识别. 目前有两个想法 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 自己实现车牌识别算法(复杂) ! 一开始准备使 ...
- ssh and scp从远程服务器下载文件
scp -r root@172.16.252.32:/home/files /home/files 下载目录 -r root是用户172.16.252.32是ip:/home/files 是你要 ...