本文實例講述了PHP實現(xiàn)超簡單的SSL加密解密、驗證及簽名的方法。分享給大家供大家參考,具體如下:
1. sign簽名代碼:
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; }
2. verify 驗證代碼:
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; }
3. 解密代碼
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; }
PS:關于加密解密感興趣的朋友還可以參考本站在線工具:
文字在線加密解密工具(包含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
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php加密方法總結》、《PHP編碼與轉碼操作技巧匯總》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《php正則表達式用法總結》
希望本文所述對大家PHP程序設計有所幫助。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。