本文實例講述了PHP實現超簡單的SSL加密解密、驗證及簽名的方法。分享給你們供你們參考,具體以下:加密
1 sign簽名代碼:spa
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 驗證代碼:ip
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 = ''; //循環按照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; }