関数 _hash_hmac()
定義ファイル :/blog/wp-includes/compat.php
_hash_hmac()
hash_hmac()を置き換える
hash_hmac() HMAC 方式を使用してハッシュ値を生成する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | if ( !function_exists('hash_hmac') ): function hash_hmac($algo, $data, $key, $raw_output = false) { return _hash_hmac($algo, $data, $key, $raw_output); } endif; function _hash_hmac($algo, $data, $key, $raw_output = false) { $packs = array('md5' => 'H32', 'sha1' => 'H40'); if ( !isset($packs[$algo]) ) return false; $pack = $packs[$algo]; if (strlen($key) > 64) $key = pack($pack, $algo($key)); $key = str_pad($key, 64, chr(0)); $ipad = (substr($key, 0, 64) ^ str_repeat(chr(0x36), 64)); $opad = (substr($key, 0, 64) ^ str_repeat(chr(0x5C), 64)); $hmac = $algo($opad . pack($pack, $algo($ipad . $data))); if ( $raw_output ) return pack( $pack, $hmac ); return $hmac; } |
関数
array() 配列を生成する
isset() 変数がセットされていること、そして NULL でないことを検査する
strlen() 文字列の長さを得る
pack() データをバイナリ文字列にパックする
str_pad() 文字列を固定長の他の文字列で埋める
substr() 文字列の一部分を返す
str_repeat() 文字列を反復する
chr() 特定の文字を返す