PHP下SSL加密解密、驗(yàn)證、簽名方法(很簡(jiǎn)單)
超級(jí)簡(jiǎn)單,依賴于OpenSSL擴(kuò)展,這里就不多廢話了,直接奉上代碼
簽名:
function sign($data) { //讀取私鑰文件 $priKey = file_get_contents('key/rsa_private_key.pem'); //轉(zhuǎn)換為openssl密鑰,必須是沒(méi)有經(jīng)過(guò)pkcs8轉(zhuǎn)換的私鑰 $res = openssl_get_privatekey($priKey); //調(diào)用openssl內(nèi)置簽名方法,生成簽名$sign openssl_sign($data, $sign, $res); //釋放資源 openssl_free_key($res); return $sign; }
驗(yàn)證:
function verify($data, $sign) { //讀取支付寶公鑰文件 $pubKey = file_get_contents('key/alipay_public_key.pem'); //轉(zhuǎn)換為openssl格式密鑰 $res = openssl_get_publickey($pubKey); //調(diào)用openssl內(nèi)置方法驗(yàn)簽,返回bool值 $result = (bool)openssl_verify($data, $sign, $res); //釋放資源 openssl_free_key($res); return $result;
解密
function decrypt($content) { //讀取商戶私鑰 $priKey = file_get_contents('key/rsa_private_key.pem'); //轉(zhuǎn)換為openssl密鑰,必須是沒(méi)有經(jīng)過(guò)pkcs8轉(zhuǎn)換的私鑰 $res = openssl_get_privatekey($priKey); //聲明明文字符串變量 $result = ''; //循環(huán)按照128位解密 for($i = 0; $i < strlen($content)/128; $i++ ) { $data = substr($content, $i * 128, 128); //拆分開(kāi)長(zhǎng)度為128的字符串片段通過(guò)私鑰進(jìn)行解密,返回$decrypt解析后的明文 openssl_private_decrypt($data, $decrypt, $res); //明文片段拼接 $result .= $decrypt; } //釋放資源 openssl_free_key($res); //返回明文 return $result; }
希望本文所述對(duì)大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。
- php實(shí)現(xiàn)生成PDF文件的方法示例【基于FPDF類(lèi)庫(kù)】
- PHP中使用Imagick讀取pdf并生成png縮略圖實(shí)例
- 使用PHP把HTML生成PDF文件的幾個(gè)開(kāi)源項(xiàng)目介紹
- PHP實(shí)現(xiàn)HTML生成PDF文件的方法
- PHP在網(wǎng)頁(yè)中動(dòng)態(tài)生成PDF文件詳細(xì)教程
- PHP中使用TCPDF生成PDF文檔實(shí)例
- php FPDF類(lèi)庫(kù)應(yīng)用實(shí)現(xiàn)代碼
- PHP中使用imagick實(shí)現(xiàn)把PDF轉(zhuǎn)成圖片
- PHP實(shí)現(xiàn)在線閱讀PDF文件的方法
- PHP使用MPDF類(lèi)生成PDF的方法
- php 生成簽名及驗(yàn)證簽名詳解
- php實(shí)現(xiàn)往pdf中加數(shù)字簽名操作示例【附源碼下載】
相關(guān)文章
PHP實(shí)現(xiàn)的抓取小說(shuō)網(wǎng)站內(nèi)容功能示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的抓取小說(shuō)網(wǎng)站內(nèi)容功能,涉及php頁(yè)面抓取、正則匹配、文件讀寫(xiě)等相關(guān)操作技巧,需要的朋友可以參考下2019-06-06PHP實(shí)現(xiàn)針對(duì)日期,月數(shù),天數(shù),周數(shù),小時(shí),分,秒等的加減運(yùn)算示例【基于strtotime】
這篇文章主要介紹了PHP實(shí)現(xiàn)針對(duì)日期,月數(shù),天數(shù),周數(shù),小時(shí),分,秒等的加減運(yùn)算,結(jié)合實(shí)例形式分析了基于strtotime的簡(jiǎn)單日期時(shí)間運(yùn)算技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04php中filter函數(shù)驗(yàn)證、過(guò)濾用戶輸入的數(shù)據(jù)
PHP 過(guò)濾器用于對(duì)來(lái)自非安全來(lái)源的數(shù)據(jù)(比如用戶輸入)進(jìn)行驗(yàn)證和過(guò)濾,下面為大家整理了一些,需要的朋友可以了解下2014-01-01PHP curl_setopt()函數(shù)實(shí)例代碼與參數(shù)分析
curl_setopt()函數(shù)將為一個(gè)CURL會(huì)話設(shè)置選項(xiàng)。option參數(shù)是你想要的設(shè)置,value是這個(gè)選項(xiàng)給定的值。2011-06-06PHP下SSL加密解密、驗(yàn)證、簽名方法(很簡(jiǎn)單)
這篇文章主要介紹了PHP下SSL加密解密、驗(yàn)證、簽名方法,方法很簡(jiǎn)單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12完美解決PHP中的Cannot modify header information 問(wèn)題
以下是對(duì)PHP中的Cannot modify header information問(wèn)題的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08解決FastCGI 進(jìn)程超過(guò)了配置的活動(dòng)超時(shí)時(shí)限的問(wèn)題
本篇文章是對(duì)解決FastCGI 進(jìn)程超過(guò)了配置的活動(dòng)超時(shí)時(shí)限的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07