ホームページ  >  記事  >  バックエンド開発  >  PHP 暗号化拡張ライブラリ Mcrypt_PHP チュートリアルのインストールとアプリケーションのヒントを共有する

PHP 暗号化拡張ライブラリ Mcrypt_PHP チュートリアルのインストールとアプリケーションのヒントを共有する

WBOY
WBOYオリジナル
2016-07-15 13:33:53937ブラウズ

その中で、Mcrypt 拡張ライブラリは暗号化と復号化機能を実現できます。つまり、平文を暗号化し、暗号文を復元できます。

1. PHP 暗号化拡張ライブラリ Mcrypt のインストール

Mrcypt は標準の PHP インストール プロセスではインストールされませんが、PHP のメイン ディレクトリには libmcrypt.dll および libmhash.dll ファイルが含まれています (libmhash.dll は Mhash 拡張ライブラリです)。ここで一緒にインストールされます)。まず、これら 2 つのファイルをシステム ディレクトリ windowssystem32 にコピーし、PHP.ini ファイル内で Ctrl+F ショートカット キーを押して検索ボックスを表示し、extension=php-mcrypt.dll と extension=php_mhash.dll を見つけます。ステートメントを作成し、その前の「;」を削除して、最後に保存して Apache サーバーを再起動して有効にします。

2. PHP 暗号化拡張ライブラリ Mcrypt のアルゴリズムと暗号化モード

Mcrypt ライブラリは、20 を超える暗号化アルゴリズムと 8 つの暗号化モードをサポートしており、関数 mcrypt_list_algorithms() および mcrypt_list_modes() によって表示できます。

Mcrypt でサポートされているアルゴリズムは次のとおりです: Cast-128 gost rijndael-128 twofish arcfour Cast-256 loki97 rijndael-192 searplus wake bullfish-compat des rijndael-256 serpent xtea bugfish enigma rc2 Triples

Mcrypt でサポートされている暗号化モードcbc cfb ctr ecb ncfb nofb ofb stream

これらのアルゴリズムとモードは、アプリケーション内の定数で表す必要があります。次の Mcrypt アプリケーションの例のように、それらを表すプレフィックス MCRYPT_ と MCRYPT_ を追加します。は MCRYPT_DES として表されます。

ECB モードは MCRYPT_MODE_ECB として表されます


3. PHP 暗号化拡張ライブラリ Mcrypt アプリケーション

まず Mcrypt のワークフローを理解するために例を見てから、いくつかの機能で使用される関数を見てみましょう。プロセス:

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><</span><span> ?php  </span></span></li><li><span>$</span><span class="attribute">str</span><span> = </span><span class="attribute-value">"我的名字是?一般人我不告诉他!"</span><span>;   </span></li><li class="alt"><span>//加密内容  </span></li><li><span>$</span><span class="attribute">key</span><span> = </span><span class="attribute-value">"key:111"</span><span>;   </span></li><li class="alt"><span>//密钥  </span></li><li><span>$</span><span class="attribute">cipher</span><span> = </span><span class="attribute-value">MCRYPT_DES</span><span>;  </span></li><li class="alt"><span>//密码类型  </span></li><li><span>$</span><span class="attribute">modes</span><span> = </span><span class="attribute-value">MCRYPT_MODE_ECB</span><span>;  </span></li><li class="alt"><span>//密码模式  </span></li><li><span>$</span><span class="attribute">iv</span><span> = </span><span class="attribute-value">mcrypt_create_iv</span><span>(mcrypt_get_iv_size<br />($cipher,$modes),MCRYPT_RAND);//初始化向量  </span></li><li class="alt"><span>echo "加密明文:".$str."</span><span class="tag"><</span><span class="tag-name">p</span><span class="tag">></span><span>";  </span></span></li>
<li>
<span>$</span><span class="attribute">str_encrypt</span><span> = </span><span class="attribute-value">mcrypt_encrypt</span><span>($cipher,<br>$key,$str,$modes,$iv);  </span>
</li>
<li class="alt"><span>//加密函数  </span></li>
<li>
<span>echo "加密密文:".$str_encrypt." </span><span class="tag"><</span><span class="tag-name">p</span><span class="tag">></span><span>";  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">str_decrypt</span><span> = </span><span class="attribute-value">mcrypt_decrypt</span><span>($cipher,<br>$key,$str_encrypt,$modes,$iv);  </span>
</li>
<li><span>//解密函数  </span></li>
<li class="alt"><span>echo "还原:".$str_decrypt;  </span></li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>

実行結果:

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

暗号化された暗号文: 锍ボウル?]鸴?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 はシステム乱数です

関数 mcrypt_get_iv_size($cipher,$modes) は、パラメータ cipher と mode はそれぞれ、暗号化関数 $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); を指します。この関数のパラメータは次のとおりです: cipher - 暗号化アルゴリズム、key - key 、data(str)—暗号化されるデータ、mode—アルゴリズムモード、iv—初期化ベクトル

<4> 復号化関数 mcrypt_decrypt($ cipher,$key,$str_encrypt,$modes,$iv); 関数と暗号化関数のパラメータはほぼ同じです。唯一の違いは、データが復号化されるデータであることを意味します $str_encrypt 。元のデータ $str

注: 暗号化関数と復号化関数のパラメーター cipher、key、mode は 1 対 1 に対応している必要があり、そうでない場合はデータを復元できません


http://www.bkjia.com/PHPjc/446040.html

www.bkjia.com

http://www.bkjia.com/PHPjc/446040.html技術記事その中で、Mcrypt 拡張ライブラリは暗号化および復号化機能を実装できます。つまり、平文を暗号化するだけでなく、暗号文を復元することもできます。 1. PHP 暗号化拡張ライブラリ Mcrypt のインストールは、標準の PHP インストール プロセスには含まれていません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。