最近公司項目中有需要用到OpenSSL的加密和java端進(jìn)行接口驗證,再測試環(huán)境升級到PHP7的時候加密會出現(xiàn)錯誤,后來多方面檢查終于找到原因所在:
PHP7環(huán)境下把openssl_get_privatekey方法換成openssl_pkey_get_private
需要轉(zhuǎn)換一下秘鑰,window環(huán)境和Linux環(huán)境下的秘鑰格式有區(qū)別(暫時不確定是不是操作系統(tǒng)的關(guān)系)
PHP的秘鑰驗證需要加上頭尾。
這里貼上附屬方法
轉(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)驗,大家還有問題的話在下方留言討論吧。
標(biāo)簽:迪慶 佛山 南寧 海南 樂山 六安 定西 十堰
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP中OpenSSL加密問題整理》,本文關(guān)鍵詞 PHP,中,OpenSSL,加密,問題,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。