概要: Mcrypt 2.4.7 は強力な暗号化アルゴリズム拡張ライブラリであり、次のアルゴリズムを含む 22 のアルゴリズムが含まれています:
以下、引用内容です
Blowfish RC2 Safer-sk64 xtea
Cast-256 RC4 Safer-sk128
DES RC4-iv サーペント
エニグマ・ラインダール-128 スリーウェイ
Gost Rijndael-192 TripleDES
LOKI97 Rijndael-256 Twofish
パナマセーファープラスウェイク
Mcryptのインストール方法は?
Mcrypt は標準の PHP ソフトウェア パッケージには含まれていないため、ダウンロードする必要があります。ダウンロード アドレスは ftp://argeas.cs-net.gr/pub/unix/mcrypt/ です。ダウンロード後、次のようにコンパイルし、PHP で展開します。
Mcrypt ソフトウェア パッケージをダウンロードします。
以下、引用内容です
gunzipmcrypt-x.x.x.tar.gz
tar -xvfmcrypt-x.x.x.tar
./configure --disable-posix-threads
作る
メイクインストール
PHP ディレクトリに cd します。
./configure -with-mcrypt=[dir] [--other-configuration-directives]
作る
メイクインストール
PHP のインストール時に、要件に従ってサーバーに適切な変更を加えます。
Mcrypt 拡張ライブラリを使用してデータを暗号化するにはどうすればよいですか?
まず、Mcrypt 拡張ライブラリを使用してデータを暗号化する方法、次にそれを使用して復号化する方法を紹介します。次のコードは、最初にデータを暗号化し、次に暗号化されたデータをブラウザ上に表示し、暗号化されたデータを元の文字列に復元して、ブラウザ上に表示します。
Mcrypt を使用してデータを暗号化および復号化する
以下、引用内容です
// 暗号化する文字列を指定
$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";
?>
上記のスクリプトを実行すると、次の出力が生成されます:
以下、引用内容です
元の文字列: Applied Cryptography, by Bruce Schneier, is a Beautiful cryptography Reference.
暗号化された文字列: 02a7c58b1ebd22a9523468694b091e60411cc4dea8652bb8072 34fa06bbfb20e71ecf525f29df58e28f3d9bf541f7ebcecf62b c89fde4d8e7ba1e6cc9ea 248 50478c11742f5cfa1d23fe22fe8 bfbab5e
復号化された文字列: Bruce Schneier 著の Applied Cryptography は、素晴らしい暗号学のリファレンスです。
上記のコードの 2 つの最も典型的な関数は mcrypt_encrypt() と mcrypt_decrypt() であり、その用途は明らかです。 「Telegraph Codebook」モードを使用しました。Mcrypt にはいくつかの暗号化方式が用意されており、各暗号化方式にはパスワードのセキュリティに影響を与える可能性のある特定の文字があるため、各モードを理解する必要があります。暗号化システムに慣れていない読者は、各情報を互いに独立させることができる mcrypt_create_iv() 関数に興味があるかもしれません。この関数が作成する初期化ベクトル (したがって iv) について説明します。 すべてのモードでこの初期化変数が必要なわけではありませんが、この変数が必要なモードで提供されていない場合、PHP は警告メッセージを発行します。