PHP 暗号化拡張ライブラリには、Mcrypt と Mhash が含まれます。今日は、PHP プログラマーがコード プログラムを作成する際の Mcrypt の機能と例について説明します。コードの高いパフォーマンスを確保することに加えて、もう 1 つの非常に重要な点はプログラムのセキュリティです。 PHP には、いくつかの独自の暗号化関数に加えて、より包括的な PHP 暗号化拡張ライブラリ Mcrypt および Mhash もあります。
その中で、Mcrypt 拡張ライブラリは暗号化および復号化機能を実現できます。つまり、平文を暗号化し、暗号文を復元できます。mcrypt は、PHP の重要な暗号化サポート拡張ライブラリです。Linux 環境では、このライブラリはデフォルトでは有効になっていません。ウィンドウ環境: PHP>=5.3 では、mcrypt 拡張機能がデフォルトで有効になっています。
1. Mcrypt() ライブラリのインストール
mcypt は非常に強力な暗号化アルゴリズム拡張ライブラリです。 Mcrypt は標準の PHP インストール プロセスではインストールされませんが、libmcrypt.dll ファイルは PHP ホーム ディレクトリに含まれているため、PHP 構成ファイルのこの行にある extension=php_mcrypt.dll の前にあるセミコロンを削除するだけで済みます。をクリックし、この拡張ライブラリを使用するためにサーバーを再起動します。
サポートされているアルゴリズムと暗号化モード
Mcrypt ライブラリは、20 を超える暗号化アルゴリズムと 8 つの暗号化モードをサポートしています。具体的には、関数
mcrypt_list_algorithms
() および
mcrypt_list_modes() を使用して [1] の暗号化アルゴリズムを表示できます。は:cast-128gostrijndael-128
twofish
arcfour
cast-256
loki97
rijndael-192
saferplus
wake
blowfish-compat
des
rijndael-256
serpent
xtea
ふぐ
エニグマ
rc2
Tripledes
暗号化モード
Mcrypt でサポートされている暗号化モードは次のとおりです:
cbc
cfb
ctr
ecb
ncfb
nofb
ofb
stream
これらのアルゴリズムとモードはアプリケーション内で定数として表現する必要があり、プレフィックス MCRYPT_ が追加されます
Mcrypt アプリケーションの例に示すように、MCRYPT_ を書き込む場合
DES アルゴリズムは MCRYPT_DES として表現されます。
コードは次のとおりです:
<?php $str = "我的名字是?一般人我不告诉他!"; //加密内容 $key = "key:111"; //密钥 $cipher = MCRYPT_DES; //密码类型 $modes = MCRYPT_MODE_ECB; //密码模式 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初始化向量 echo "加密明文:".$str."<p>"; $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); //加密函数 echo "加密密文:".$str_encrypt." <p>"; $str_decrypt = mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); //解密函数 echo "还原:".$str_decrypt; ?>
暗号化された暗号文: 锍??]??q???L 笑い??"? ?
復元: 私の名前は何ですか? 一般の人には教えません!f35d6e602fd7d0f0edfa6f7d103c1b57例からわかるように、 PHP を使用する 暗号化拡張ライブラリ Mcrypt は、データを暗号化および復号する前に、まず iv と呼ばれる初期化ベクトルを作成します。 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);初期化ベクトルには 2 つのパラメータが必要です: size iv のサイズが指定されます。source は iv のソースであり、値 MCRYPT_RAND はシステム乱数です
関数 mcrypt_get_iv_size($cipher,$modes) は初期化ベクトルを返します。サイズ、パラメーター cipher と mode はそれぞれアルゴリズムと暗号化モードを参照します。
暗号化関数 $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv);関数は次のとおりです: cipher—暗号化アルゴリズム、key—key、data (str)—暗号化するデータ、mode—アルゴリズムモード、iv—初期化ベクトル
23889872c2e8594e0f446a471a78ec4c 復号化関数 mcrypt_decrypt($cipher, $key,$str_encrypt,$modes,$iv); この関数と暗号化
関数のパラメーターはほぼ同じですが、唯一の違いは data です。つまり、data は復号化されるデータであり、元のデータではありません $str_encrypt $str.
注: 暗号化関数と復号化関数のパラメーターの暗号、キー、およびモードは同じである必要があります。一致しない場合、データは復元できません。 8 つの暗号化モードは、関数 mcrypt_list_algorithms() および mcrypt_list_modes() を通じて表示できます。
以上がPHP 暗号化拡張ライブラリ Mcrypt のインストールと例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。