PHP RSA演算法 HMAC-SHA1加密演算法
阿新 • • 發佈:2018-12-06
HMAC-SHA1加密演算法
function getSignature($str, $key) { $signature = ""; if (function_exists('hash_hmac')) { $signature = base64_encode(hash_hmac("sha1", $str, $key, true)); } else { $blocksize = 64; $hashfunc = 'sha1'; if (strlen($key) > $blocksize) { $key = pack('H*', $hashfunc($key)); } $key = str_pad($key, $blocksize, chr(0x00)); $ipad = str_repeat(chr(0x36), $blocksize); $opad = str_repeat(chr(0x5c), $blocksize); $hmac = pack( 'H*', $hashfunc( ($key ^ $opad) . pack( 'H*', $hashfunc( ($key ^ $ipad) . $str ) ) ) ); $signature = base64_encode($hmac); } return $signature; }
php openssl(SHA1WithRSA) 簽名 驗籤
簽名:
public function wjSign($data){
$key = openssl_pkey_get_private(file_get_contents($this->privateKeyPathWJ));
openssl_sign($data, $sign, $key, OPENSSL_ALGO_SHA1);
$sign = base64_encode($sign);
return $sign;
}
驗籤:
public function wjVerify($data, $sign){ $sign = base64_decode($sign); $key = openssl_pkey_get_public(file_get_contents($this->publicKeyPathWJ)); $result = openssl_verify($data, $sign, $key, OPENSSL_ALGO_SHA1) === 1; return $result; }