ホームページ  >  記事  >  バックエンド開発  >  PHP暗号化拡張ライブラリ - Mhash拡張ライブラリの使用例の詳細な説明

PHP暗号化拡張ライブラリ - Mhash拡張ライブラリの使用例の詳細な説明

黄舟
黄舟オリジナル
2017-05-25 16:15:003563ブラウズ

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 的名称
}
?>

出力結果は次のとおりです:

PHP暗号化拡張ライブラリ - Mhash拡張ライブラリの使用例の詳細な説明

注: 実際のアプリケーションで上記の定数を使用する場合は、アルゴリズム名の前にプレフィックスとして 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暗号化拡張ライブラリ - Mhash拡張ライブラリの使用例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。