ホームページ >バックエンド開発 >PHPチュートリアル >PHP 暗号化拡張ライブラリ Mcrypt のインストールとアプリケーションの例_PHP チュートリアル

PHP 暗号化拡張ライブラリ Mcrypt のインストールとアプリケーションの例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:47:551143ブラウズ

PHP Mcrypt 暗号化拡張ライブラリを PHP で使用したい場合は、最初に暗号化拡張ライブラリをインストールしてから使用する必要があります。これは、gd ライブラリのようにデフォルトではインストールされないためです。

mcrypt の簡単な紹介

PHP プログラマーがコード プログラムを作成する場合、コードの高いパフォーマンスを確保することに加えて、プログラムのセキュリティというもう 1 つの非常に重要な点があります。 PHP には、いくつかの独自の暗号化関数に加えて、より包括的な PHP 暗号化拡張ライブラリ Mcrypt および Mhash もあります。
その中で、Mcrypt 拡張ライブラリは暗号化および復号化機能を実装できます。つまり、平文を暗号化するだけでなく、暗号文を復元することもできます。
mcrypt は、PHP の重要な暗号化サポート拡張ライブラリです。Linux 環境では、このライブラリはデフォルトでは有効になっていません。ウィンドウ環境: PH​​P>=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 として表されます。

コードは次のとおりですコードをコピー $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."

";
$str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); //暗号化関数
echo "暗号化された暗号文:".$str_encrypt."

";
$str_decrypt = mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); //復号化関数
echo "復元:".$str_decrypt;
?>


暗号化されたプレーンテキスト: 私の名前は何ですか?ほとんどの人には言いません!

暗号化された暗号文: 锍??]??q???L 笑い??"? ?

復元: 私の名前は何ですか?ほとんどの人には言いません!

<1> この例からわかるように、PHP 暗号化拡張ライブラリ Mcrypt を使用してデータを暗号化および復号化する前に、略して iv と呼ばれる初期化ベクトルが最初に作成されます。 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND); から、初期化ベクトルの作成には 2 つのパラメーターが必要であることがわかります。size は iv のサイズを指定します。source は iv のソースであり、値 MCRYPT_RAND はシステム乱数。

<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() を通じて表示できます。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632833.html技術記事 PHP では、PHP Mcrypt 暗号化拡張ライブラリを使用したい場合、最初に暗号化拡張ライブラリをインストールしてから使用する必要があります。これは、gd ライブラリのようにデフォルトではインストールされないためです。 mcrypt シンプル...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。