PHP下SSL加密解密、驗證、簽名方法(很簡單)
更新時間:2020年06月28日 09:29:53 投稿:lijiao
這篇文章主要介紹了PHP下SSL加密解密、驗證、簽名方法,方法很簡單,具有一定的參考價值,感興趣的小伙伴們可以參考一下
超級簡單,依賴于OpenSSL擴展,這里就不多廢話了,直接奉上代碼
簽名:
function sign($data) { //讀取私鑰文件 $priKey = file_get_contents('key/rsa_private_key.pem'); //轉換為openssl密鑰,必須是沒有經過pkcs8轉換的私鑰 $res = openssl_get_privatekey($priKey); //調用openssl內置簽名方法,生成簽名$sign openssl_sign($data, $sign, $res); //釋放資源 openssl_free_key($res); return $sign; }
驗證:
function verify($data, $sign) { //讀取支付寶公鑰文件 $pubKey = file_get_contents('key/alipay_public_key.pem'); //轉換為openssl格式密鑰 $res = openssl_get_publickey($pubKey); //調用openssl內置方法驗簽,返回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'); //轉換為openssl密鑰,必須是沒有經過pkcs8轉換的私鑰 $res = openssl_get_privatekey($priKey); //聲明明文字符串變量 $result = ''; //循環(huán)按照128位解密 for($i = 0; $i < strlen($content)/128; $i++ ) { $data = substr($content, $i * 128, 128); //拆分開長度為128的字符串片段通過私鑰進行解密,返回$decrypt解析后的明文 openssl_private_decrypt($data, $decrypt, $res); //明文片段拼接 $result .= $decrypt; } //釋放資源 openssl_free_key($res); //返回明文 return $result; }
希望本文所述對大家學習php程序設計有所幫助。
您可能感興趣的文章:
相關文章
PHP實現(xiàn)針對日期,月數,天數,周數,小時,分,秒等的加減運算示例【基于strtotime】
這篇文章主要介紹了PHP實現(xiàn)針對日期,月數,天數,周數,小時,分,秒等的加減運算,結合實例形式分析了基于strtotime的簡單日期時間運算技巧,非常具有實用價值,需要的朋友可以參考下2017-04-04完美解決PHP中的Cannot modify header information 問題
以下是對PHP中的Cannot modify header information問題的解決方法進行了詳細的分析介紹,需要的朋友可以過來參考下2013-08-08