PHP中OpenSSL加密問(wèn)題整理
最近公司項(xiàng)目中有需要用到OpenSSL的加密和java端進(jìn)行接口驗(yàn)證,再測(cè)試環(huán)境升級(jí)到PHP7的時(shí)候加密會(huì)出現(xiàn)錯(cuò)誤,后來(lái)多方面檢查終于找到原因所在:
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加密問(wèn)題的小經(jīng)驗(yàn),大家還有問(wèn)題的話在下方留言討論吧。
- 升級(jí) PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問(wèn)題的處理方法
- PHP7.1中使用openssl替換mcrypt的實(shí)例詳解
- PHP 使用openssl 擴(kuò)展實(shí)現(xiàn)公鑰加密的方法
- php無(wú)需編譯安裝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ù)
相關(guān)文章
php實(shí)現(xiàn)無(wú)限級(jí)分類查詢(遞歸、非遞歸)
這篇文章分為兩種情況,介紹了在遞歸和不使用遞歸的情況下PHP實(shí)現(xiàn)無(wú)限級(jí)分類,感興趣的小伙伴們可以參考一下2016-03-03通過(guò)chrome瀏覽器控制臺(tái)(Console)進(jìn)行PHP Debug的方法
這篇文章主要介紹了利用chrome瀏覽器控制臺(tái)(Console)進(jìn)行PHP Debug,需要的朋友可以參考下2016-10-10php實(shí)現(xiàn)計(jì)算百度地圖坐標(biāo)之間距離的方法
這篇文章主要介紹了php實(shí)現(xiàn)計(jì)算百度地圖坐標(biāo)之間距離的方法,涉及php字符串、數(shù)組及數(shù)學(xué)運(yùn)算的相關(guān)技巧,需要的朋友可以參考下2016-05-05PHP連接MySQL數(shù)據(jù)庫(kù)的三種方式實(shí)例分析【mysql、mysqli、pdo】
這篇文章主要介紹了PHP連接MySQL數(shù)據(jù)庫(kù)的三種方式,結(jié)合實(shí)例形式分析了PHP基于mysql、mysqli、pdo三種方式連接MySQL數(shù)據(jù)庫(kù)的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-11-11php基于PDO實(shí)現(xiàn)功能強(qiáng)大的MYSQL封裝類實(shí)例
這篇文章主要介紹了php基于PDO實(shí)現(xiàn)功能強(qiáng)大的MYSQL封裝類,結(jié)合完整實(shí)例形式分析了php基于pdo實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)連接、增刪改查、事務(wù)等操作的方法,需要的朋友可以參考下2017-02-02Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹
這篇文章主要介紹了Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹,本文講解了@yield 與 @section、@show 與 @stop、@append 和 @override的區(qū)別,需要的朋友可以參考下2015-02-02對(duì)象失去焦點(diǎn)時(shí)自己動(dòng)提交數(shù)據(jù)的實(shí)現(xiàn)代碼
生產(chǎn)線上,提升輸入員輸入效率,在沒(méi)有購(gòu)買到Bar code槍之前,需要修改程序,即是說(shuō)當(dāng)mouse光標(biāo)離開(kāi)TextBox之后,數(shù)據(jù)自動(dòng)提交到數(shù)據(jù)庫(kù)中2012-11-11PHP下利用header()函數(shù)設(shè)置瀏覽器緩存的代碼
PHP高級(jí)應(yīng)用學(xué)習(xí)筆記之 利用header()函數(shù)設(shè)置瀏覽器緩存2010-09-09PHP Laravel框架異步執(zhí)行的實(shí)現(xiàn)詳解
Laravel是一套簡(jiǎn)潔、優(yōu)雅的PHP Web開(kāi)發(fā)框架(PHP Web Framework)。它可以讓你從面條一樣雜亂的代碼中解脫出來(lái);它可以幫你構(gòu)建一個(gè)完美的網(wǎng)絡(luò)APP,而且每行代碼都可以簡(jiǎn)潔、富于表達(dá)力2022-07-07PHP parse_ini_file函數(shù)的應(yīng)用與擴(kuò)展操作示例
這篇文章主要介紹了PHP parse_ini_file函數(shù)的應(yīng)用與擴(kuò)展操作,結(jié)合實(shí)例形式分析了php擴(kuò)展parse_ini_file函數(shù)解析配置文件相關(guān)操作技巧,需要的朋友可以參考下2019-01-01