PHP 暗号化拡張ライブラリ—Mhash 拡張ライブラリ
Mhash 拡張ライブラリとは: Mhash は、離散数学の原理に基づいた不可逆的な PHP 暗号化拡張ライブラリです。デフォルトでは有効になっていません。 mhash を使用すると、検証値、メッセージ ダイジェスト、メッセージ認証コードを作成し、元のテキストなしでキー情報 (パスワードなど) を保存できます。
1. Mhash 拡張ライブラリのインストール
Mhash ライブラリのインストールは、ここでは詳しく紹介しません。以前の記事「PHP 暗号化拡張ライブラリ」を参照してください。 —Mcrypt」拡張ライブラリ》!
2.Mhash 拡張ライブラリの定数
Mhash ライブラリは、MD5、SHA、CRC32 などの複数のハッシュ アルゴリズムをサポートしています。 mhash_count() 関数と mhash_get_hash_name() 関数を使用して、サポートされているアルゴリズム名を出力できます。以下のサンプルコードを見てみましょう:
<?php header("Content-Type:text/html; charset=utf-8"); $num = mhash_count(); //函数返回最大的hash id echo "mhash库支持的算法有:<br>"; for($i=0;$i<=$num;$i++){ echo $i."=>".mhash_get_hash_name($i)."<br>".""; //输出每一个hash id 的名称 } ?>
出力結果は次のとおりです:
注: 実際のアプリケーションで上記の定数を使用する場合は、アルゴリズム名の前にプレフィックスとして MHASH_ を追加する必要があります。たとえば、CRC32 は MHASH_CRC32 と表されます。
3.Mhash アプリケーション
Mcrypt 拡張ライブラリの 30 以上の関数と比較して、Mhash ライブラリには 5 つの関数しかありません。上記で使用した 2 つの関数に加えて、他の 3 つの関数を以下に紹介します。 。
(1)mhash_get_block_size() 関数
関数の構文形式は次のとおりです:
int mhash_get_block_size ( int $hash )
この関数は、mhash_get_biock_size(MHASH_CRC32) など、パラメーター ハッシュのブロック サイズを取得するために使用されます。
(2)mhash()関数
関数の構文形式は次のとおりです:
string mhash(int hash,string data[,string key])
この関数はハッシュ値を返します。パラメータ ハッシュは使用されるアルゴリズム、パラメータ データは暗号化されるデータ、パラメータ キーは暗号化に使用されるキーです。
(3) mhash_keygen_s2k() 関数
関数の構文形式は次のとおりです:
string mhash_keygen_s2k ( int $hash , string $password , string $salt, int $bytes )
この関数は、パラメーターのパスワードとソルトに基づいてキー値をバイト単位で返します。パラメーターのハッシュは、アルゴリズムです。使用済み。ソルトは 8 バイトの固定値です。ユーザーが指定した値が 8 バイト未満の場合は、0 が埋め込まれます。
次の例では、mhash_keygen_s2k() 関数を使用してチェック コードを生成し、bin2hex() 関数を使用してバイナリ結果を 16 進数に変換します。具体的なコードは次のとおりです:
<?php header("Content-Type:text/html; charset=utf-8"); $filename = "08.txt"; // 文件路径 $str = file_get_contents($filename); //读取文件内容到变量$str中 $hash = 2 ; //设置hash值 $password = "111"; //设置变量$password $salt = "1234"; //设置变量$salt $key = mhash_keygen_s2k(1,$password,$salt,10); //生成key 值 $str_mhash =bin2hex(mhash($hash,$str,$key)); //使用$key 值、$hash值对字符串$str 加密 echo "文件 08.txt 的校验码是:".$str_mhash; //输出校验码 ?>
の出力結果は次のとおりです。 Mcrypt 拡張ライブラリの使用例
以上がPHP暗号化拡張ライブラリ - Mhash拡張ライブラリの使用例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。