本篇文章主要跟大家講解了PHP中OpenSSL加密遇到的問題整理以及相關的處理辦法,在實際PHP開發中加密是很常見的,對PHP中加密感興趣的可以一起參考學習下。
最近公司專案中有需要用到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加密問題的小經驗,大家還有問題的話在下方留言討論吧。
相關推薦:
#PHP 7.1中利用OpenSSL取代Mcrypt加解密的方法詳解_php技巧
#######php 以openssl為基礎實作的的加密解密方法###### #以上是PHP中OpenSSL加密問題整理_php技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!