十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
本篇文章為大家展示了怎么在PHP中實(shí)現(xiàn)SSL加密解密,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

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;
}上述內(nèi)容就是怎么在PHP中實(shí)現(xiàn)SSL加密解密,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。