PHP中OpenSSL加密问题整理

2021-07-13 18:12:20 浏览数 (1)

最近公司项目中有需要用到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加密问题的小经验,大家还有问题的话在下方留言讨论吧。

0 人点赞