概要: Mcrypt 2.4.7 は強力な暗号化アルゴリズム拡張ライブラリであり、次のアルゴリズムを含む 22 のアルゴリズムが含まれています:
Blowfish RC2 Safer-sk64 xtea
キャスト-256 RC4 セーファー-sk128
DES RC4-iv サーペント
Enigma Rijndael-128 スリーウェイ
Gost Rijndael-192 TripleDES
LOKI97 Rijndael-256 トゥーフィッシュ
PanamaSaferplus Wake に
Mcrypt をインストールするにはどうすればよいですか
?Mcrypt は標準の PHP パッケージには含まれていないため、ダウンロードする必要があります。ダウンロード アドレスはftp://argeas.cs-net.gr/pub/unix/mcrypt/です。ダウンロード後、次のようにコンパイルして PHP で拡張します。
Mcrypt パッケージをダウンロードします。
Gunzipmcrypt-xxxtar.gz
tar -xvfmcrypt-xxxtar
./configure --disable-posix-threads
作る
インストールする
cd を使用して PHP ディレクトリに移動します。
./configure -with-mcrypt=[dir] [--other-configuration-directives]
作る
make install は、
要件と PHP インストールに基づいてサーバーに適切な変更を加えます。
Mcrypt 拡張ライブラリを使用してデータを暗号化するにはどうすればよいですか?
まず、Mcrypt 拡張ライブラリを使用してデータを暗号化する方法を説明し、次にそれを使用して復号化する方法を説明します。次のコードは、最初にデータを暗号化し、次に暗号化されたデータをブラウザ上に表示し、暗号化されたデータを元の文字列に復元して、ブラウザ上に表示します。
Mcrypt を使用してデータを暗号化および復号化する
<?php
// 暗号化する文字列を指定
$string = "ブルース・シュナイアーによる応用暗号法は、
素晴らしい暗号リファレンスです。";
// 暗号化/復号化キー
$key = "4 スコアと 20 年前"
// 暗号化アルゴリズム
$cipher_alg = MCRYPT_RIJNDAEL_128;
// セキュリティを強化するための初期化ベクトルを作成します。
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,
MCRYPT_MODE_ECB), MCRYPT_RAND);
// 元の文字列を出力します。
print "元の文字列: $string
";
// $string を暗号化します
$encrypted_string = mcrypt_encrypt($cipher_alg, $key,
$string, MCRYPT_MODE_CBC, $iv);
// 16 進数に変換してブラウザに出力します。
print "暗号化された文字列: ".bin2hex($encrypted_string)."
";
$decrypted_string = mcrypt_decrypt($cipher_alg, $key,
$encrypted_string, MCRYPT_MODE_CBC, $iv);
print "復号化された文字列: $decrypted_string";
?>
上記のスクリプトを実行すると、次の出力が生成されます。
元の文字列: Bruce Schneier による Applied Cryptography は、素晴らしい暗号化リファレンスです
。541f7ebcecf62b c89fde4d8e7ba1e6cc9ea24850478c11742f5cfa1d23fe22fe8 bfbab5e
Bruce Schneier 著の『復号化された文字列: Applied Cryptography』は、素晴らしい暗号化リファレンスです。
上記のコードの 2 つの最も典型的な関数は mcrypt_encrypt() と mcrypt_decrypt() であり、それらの用途は明らかです。 「Telegraph Codebook」モードを使用しました。Mcrypt にはいくつかの暗号化方式が用意されており、各暗号化方式にはパスワードのセキュリティに影響を与える可能性のある特定の文字があるため、各モードを理解する必要があります。暗号化システムに慣れていない読者は、各情報を互いに独立させることができる mcrypt_create_iv() 関数に興味があるかもしれません。この関数が作成する初期化ベクトル (したがって iv) について説明します。 すべてのモードでこの初期化変数が必要なわけではありませんが、この変数が必要なモードで提供されていない場合、PHP は警告メッセージを表示します。