PHP實(shí)現(xiàn)超簡(jiǎn)單的SSL加密解密、驗(yàn)證及簽名的方法示例
本文實(shí)例講述了PHP實(shí)現(xiàn)超簡(jiǎn)單的SSL加密解密、驗(yàn)證及簽名的方法。分享給大家供大家參考,具體如下:
1. sign簽名代碼:
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;
}
2. verify 驗(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;
}
3. 解密代碼
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;
}
PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:
文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password
在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》及《php正則表達(dá)式用法總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP中實(shí)現(xiàn)中文字符進(jìn)制轉(zhuǎn)換原理分析
中文字符編碼研究系列第四期,PHP實(shí)現(xiàn)中文字符進(jìn)制轉(zhuǎn)換原理分析,主要討論中文漢字轉(zhuǎn)換為十進(jìn)制和十六進(jìn)制的方法,并掌握轉(zhuǎn)換原理應(yīng)用于實(shí)際開(kāi)發(fā)。本文以GBK編碼字符為例,討論GBK編碼的字符轉(zhuǎn)換原理2011-12-12
使用systemd設(shè)置PHP程序?yàn)榉?wù)的配置步驟
在現(xiàn)代?Linux?系統(tǒng)中,systemd?是用于管理和控制服務(wù)的標(biāo)準(zhǔn)工具,通過(guò)?systemd,我們可以輕松地將?PHP?程序配置為后臺(tái)運(yùn)行的系統(tǒng)服務(wù),本文將介紹如何為?PHP?程序設(shè)置?systemd?服務(wù)單元,并涵蓋相關(guān)配置步驟,需要的朋友可以參考下2024-10-10
jquery+php實(shí)現(xiàn)導(dǎo)出datatables插件數(shù)據(jù)到excel的方法
這篇文章主要介紹了jquery+php實(shí)現(xiàn)導(dǎo)出datatables插件數(shù)據(jù)到excel的方法,實(shí)例分析了jquery插件datatables的使用方法與php導(dǎo)出datatables數(shù)據(jù)到Excel的技巧,需要的朋友可以參考下2015-07-07
WordPress中"無(wú)法將上傳的文件移動(dòng)至"錯(cuò)誤的解決方法
這篇文章主要介紹了WordPress中"無(wú)法將上傳的文件移動(dòng)至"錯(cuò)誤的解決方法,文中的環(huán)境基于Linux系統(tǒng)和Nginx服務(wù)器,需要的朋友可以參考下2015-07-07
淺談ThinkPHP5.0版本和ThinkPHP3.2版本的區(qū)別
小編小編就為大家?guī)?lái)一篇淺談ThinkPHP5.0版本和ThinkPHP3.2版本的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
php+mysql結(jié)合Ajax實(shí)現(xiàn)點(diǎn)贊功能完整實(shí)例
這篇文章主要介紹了php+mysql結(jié)合Ajax實(shí)現(xiàn)點(diǎn)贊功能,以一個(gè)完整實(shí)例形式詳細(xì)分析了實(shí)現(xiàn)點(diǎn)贊功能中涉及的html頁(yè)面、Ajax功能及php方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-01-01
php設(shè)計(jì)模式 Decorator(裝飾模式)
動(dòng)態(tài)的給一個(gè)對(duì)象添加一些額外的職責(zé),就擴(kuò)展功能而言比生成子類方式更為靈活2011-06-06

