开发中有一段加密解密功能,在加载密钥的时候,因为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能读取还是不懂,希望大大解答