最近公司項(xiàng)目中有需要用到OpenSSL的加密和java端進(jìn)行接口驗(yàn)證,再測試環(huán)境升級到PHP7的時(shí)候加密會出現(xiàn)錯(cuò)誤,后來多方面檢查終于找到原因所在:
PHP7環(huán)境下把openssl_get_privatekey方法換成openssl_pkey_get_private
需要轉(zhuǎn)換一下秘鑰,window環(huán)境和Linux環(huán)境下的秘鑰格式有區(qū)別(暫時(shí)不確定是不是操作系統(tǒng)的關(guān)系)
PHP的秘鑰驗(yàn)證需要加上頭尾。
這里貼上附屬方法
轉(zhuǎn)換秘鑰格式的方法:
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加密問題的小經(jīng)驗(yàn),大家還有問題的話在下方留言討論吧。
您可能感興趣的文章:- 升級 PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問題的處理方法
- PHP7.1中使用openssl替換mcrypt的實(shí)例詳解
- PHP 使用openssl 擴(kuò)展實(shí)現(xiàn)公鑰加密的方法
- php無需編譯安裝openssl擴(kuò)展的實(shí)現(xiàn)方法
- linux環(huán)境下安裝PHP的OpenSSL擴(kuò)展的方法講解
- php7安裝openssl擴(kuò)展方法
- PHP 7.1中利用OpenSSL代替Mcrypt加解密的方法詳解
- PHP中使用OpenSSL生成證書及加密解密
- 詳解PHP版本兼容之openssl調(diào)用參數(shù)