PHP コード
function HmacMd5($data,$key) { mhash to compute a HMAC // Lance Rushing によってハッキングされました (注: ハッキングとは書かれたことを意味します) // iconv をサポートするように環境を構成する必要があります。それ以外の場合は中国語のパラメーターをサポートします$key = iconv("GB2312","UTF-8",$key); $data = iconv("GB2312", "UTF-8",$data); // md5 のバイト長 if (strlen($key) > $b) { $key = Pack("H*",md5($key)) );暗号化ハッシュ関数 (H と表記) とキー K が必要です。H が基本的な反復圧縮関数を使用してデータ ブロックを暗号化するハッシュ関数であると仮定します。
B を使用してデータ ブロックの長さを表します。 (上記ハッシュ関数の分割データ長はB=64)、ハッシュ関数の出力データ長をLとする(MD5ではL=16、SHA?1ではL=20)。
キーの長さは、データ ブロックの長さ以下の任意の正の整数値にすることができます。アプリケーションで使用されるキーの長さが B より大きい場合は、まずハッシュ関数 H を使用してそれに作用し、次に H によって出力された L 長の文字列を HMAC で実際に使用されるキーとして使用します。
一般に、推奨される最小の鍵 K の長さは L の長さです。 (Hの出力データ長と同じ)。
転載元: http://blog.icain.cn/show-199-1.html