openssl_pkey_get_public因PHP版本不同返回false?

 anilshen_333 发布于 2022-11-14 22:31

开发中有一段加密解密功能,在加载密钥的时候,因为php版本不同而结果不同

代码如下

$publicKey = openssl_pkey_get_public(_DIR__.'/cmcc_public.pem');

代码不变的情况下,切换php版本解决问题,但还是有疑问

PHP版本5.5n时返回false
根据openssl_error_string()返回结果为:'error:0906D06C:PEM routines:PEM_read_bio:no start line'

PHP版本7.0n时返回正确的资源文件

已做以下确认:
1排除密钥文件BOM头等问题,公用一个pem文件.
2确认5.5n版本和7.0n版本均在php.ini中开启了openssl扩展

2017-02-22 16:44
最新进展,发现原公钥pem文件除BEGIN和END两行外,内容只有一行
做换行处理后5.5n正常使用,但是为什么同一个文件pem 7.0能读取还是不懂,希望大大解答

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有