ホームページ >バックエンド開発 >PHPチュートリアル >PHP 暗号化拡張ライブラリ Mcrypt のインストールとアプリケーションの例_PHP チュートリアル
PHP Mcrypt 暗号化拡張ライブラリを PHP で使用したい場合は、最初に暗号化拡張ライブラリをインストールしてから使用する必要があります。これは、gd ライブラリのようにデフォルトではインストールされないためです。
mcrypt の簡単な紹介
PHP プログラマーがコード プログラムを作成する場合、コードの高いパフォーマンスを確保することに加えて、プログラムのセキュリティというもう 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 つの暗号化モードをサポートしています。具体的には、[1] 暗号化アルゴリズムは関数 mcrypt_list_algorithms() および mcrypt_list_modes() を通じて表示できます。
Mcrypt でサポートされているアルゴリズムは次のとおりです:
キャスト-128
ゴスト
ラインダール-128
二匹の魚
アークフォー
キャスト-256
ロキ97
ラインダール-192
セーファープラス
起きてください
フグ互換
デス
ラインダール-256
蛇
エックスティー
ふぐ
謎
rc2
トリプル
暗号化モード
Mcrypt でサポートされている暗号化モードは次のとおりです:
CBC
クリック
のふば
オフ
ストリーム
これらのアルゴリズムとモードは、アプリケーション内で定数で表す必要があります。以下の Mcrypt アプリケーションに示すように、それらを表すプレフィックス MCRYPT_ と MCRYPT_ を追加します。
例
DES アルゴリズムは MCRYPT_DES として表されます;
ECB モードは MCRYPT_MODE_ECB として表されます。
;
$key = "key:111" //キー ;
$cipher = MCRYPT_DES //パスワードの種類 "; "; | 実行結果:
暗号化された暗号文: 锍??]??q???L 笑い??"? ?
復元: 私の名前は何ですか?ほとんどの人には言いません!
<2> 関数 mcrypt_get_iv_size($cipher,$modes) は、初期化ベクトルのサイズを返します。パラメーター cipher と mode は、それぞれアルゴリズムと暗号化モードを参照します。
<3> 暗号化関数 $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); この関数の 5 つのパラメータは次のとおりです: cipher—暗号化アルゴリズム、key—key、data( str)—暗号化するデータ、mode—アルゴリズムモード、iv—初期化ベクトル
<4> 復号化関数 mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); この関数と暗号化関数のパラメータはほぼ同じです。つまり、データが異なります。元のデータ $str ではなく、復号化する必要があるデータ $str_encrypt。
注: 暗号化関数と復号化関数のパラメータ cipher、key、mode は 1 対 1 に対応している必要があり、そうでない場合はデータを復元できません
mcrypt ライブラリ定数
Mcrypt ライブラリは、20 を超える暗号化アルゴリズムと 8 つの暗号化モードをサポートしています。これは、関数 mcrypt_list_algorithms() および mcrypt_list_modes() を通じて表示できます。