PHP の暗号化アルゴリズムで str_repeat と str_pad が chr を使用して ASCII コードを返すのはなぜですか?

WBOY
リリース: 2016-06-13 12:10:00
オリジナル
1325 人が閲覧しました

PHP の一部の暗号化アルゴリズムで str_repeat と str_pad が chr を使用して ASCII コードを返すのはなぜですか?
以下の暗号化アルゴリズムを参照してください:

function custom_hmac($algo, $data, $key, $raw_output = false)<br />{<br />$algo = strtolower($algo);<br />$pack = 'H'.strlen($algo('test'));<br />$size = 64;<br />$opad = str_repeat(chr(0x5C), $size);<br />$ipad = str_repeat(chr(0x36), $size);<br />//这样子的代码请详细解说一下<br />if (strlen($key) > $size) {<br />$key = str_pad(pack($pack, $algo($key)), $size, chr(0x00));<br />} else {<br />$key = str_pad($key, $size, chr(0x00));<br />}<br /><br />for ($i = 0; $i < strlen($key) - 1; $i++) {<br />$opad[$i] = $opad[$i] ^ $key[$i];<br />$ipad[$i] = $ipad[$i] ^ $key[$i];<br />}// 这个也不太明白<br /><br />$output = $algo($opad.pack($pack, $algo($ipad.$data)));<br /><br />return ($raw_output) ? pack($pack, $output) : $output;<br />}
ログイン後にコピー

-----ソリューションのアイデア------ --
str_pad は文字列を指定された文字を指定された長さに変換します
ここでは$sizeです
長さは同じです、次のループで要素が存在するかどうかを判断する必要はありません

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート