最近在做rsa加密,通过java生成的公私密钥,然后在php端接受处理。
在本地wamp环境下,我使用的是php5.6.19版本,开启openssl模块,通过公钥生成注册码,毫无问题。
在上传到linux服务器,环境是php5.5.8,开启openssl模块,一直报公钥key是无效的,一顿百度,没有头绪。
最后在linux中,修改代码
$public_key = "这是java传过来的经过base64编码的公钥(一般是M字头的)";
$pem = chunk_split($public_key,64,"\n");//转换为pem格式的公钥
$pem = "-----BEGIN PUBLIC KEY-----\n".$pem."-----END PUBLIC KEY-----\n";
$puKey = openssl_pkey_get_public($pem);//获取公钥内容
发现在运行代码时是正确的。
密钥完全没有变化,经过检查本地openssl版本是2016年的,服务器上openssl版本是2013年的,猜测大概是新版本有所更新,解决了换行问题。
转载请注明原文地址: https://ju.6miu.com/read-339.html