PHP 暗号化拡張ライブラリ—Mcrypt 拡張ライブラリ
この記事の本文を始める前に、まず PHP 暗号化拡張ライブラリとは何かを理解しましょう。 PHP ですが、さらに、PHP には比較的包括的な機能を備えた暗号化拡張ライブラリがいくつかあります。 PHP が元々特定の機能の操作をサポートしていないのと同じように、新しいバージョンでサポートしたい場合は、この機能を使用しない場合は、PHP の設定時に拡張して提供することができます。これにより、PHP のロードを防ぐことができ、サーバーのリソースが節約され、パフォーマンスが向上します。
これまでの3つの記事「PHP暗号化関数—crypt()関数暗号化」「PHP暗号化関数—md5()関数暗号化」「PHP暗号化関数—sha1()関数暗号化」 PHP 暗号化機能を紹介しました。次に、PHP 暗号化拡張ライブラリを紹介します。
PHP 暗号化拡張ライブラリには、Mcrypt と Mhash の 2 つがあります。この記事では、最初に Mcrypt を紹介します。
1. Mcrypt ライブラリのインストール
mcypt は、非常に強力な暗号化アルゴリズム拡張ライブラリです。 Mcrypt は標準の PHP インストール プロセスではインストールされませんが、libmcrypt.dll ファイルは PHP ホーム ディレクトリに含まれているため、PHP 構成ファイルの extension=php_mcrypt.dll 行の前にあるセミコロンのみを使用します。次に、この拡張ライブラリを使用するためにサーバーを再起動します。2.Mcrypt ライブラリ定数
mcrypt ライブラリは 20 を超える暗号化アルゴリズムと 8 つの暗号化モードをサポートしており、関数 mcrypt_list_algorithms() と mcrypt_list_modes() を直接使用して確認できます。出力 結果は次のとおりです: 注:実際のアプリケーションでは、これらのアルゴリズムとモードを定数で表す必要があります。これらを表すためにそれぞれ MCRYPT_ と MCRYPT_MODE_ を追加します。アルゴリズム: MCRYPT_TWOFISH として表されます。 CBC 暗号化モードは MCRYPT_MODE_CBC で表されます。
3.Mcrypt アプリケーション暗号化と復号化に Mcrypt を使用します。md5()、sha1() およびその他の関数を使用したくない場合は、それらを直接呼び出してください。誰もが Mcrypt のワークフローを明確に理解できるように、コードを使用して直接紹介しましょう。 具体的なコードは次のとおりです。
<?php $atr = mcrypt_list_algorithms(); //函数返回 Mcrypt支持的加密算法数组 echo "支持算法有:"; foreach ($atr as $atr_value){ echo "<br>".$atr_value; } $arr = mcrypt_list_modes(); //函数返回 Mcrypt支持的加密模式数组 echo "<p>支持加密模式有:"; foreach ($arr as $arr_value){ echo "<br>".$arr_value; } ?>
出力結果は次のとおりです。
次に、上の例:
1.mcrypt_create_iv: 構文形式は次のとおりです:
<?php header("Content-Type:text/html; charset=utf-8"); $str = "被加密的内容:PHH中文网m.sbmmt.com"; //加密文本 $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."<p>"; ?>
データ暗号化には Mcrypt を使用します。復号化の前に、まず初期化ベクトル (iv と呼ばれる) を作成する必要があります。初期化ベクトルの作成には 2 つのパラメーターが必要です。size は iv のサイズを指定し、source は iv のソースです。 source は次の値を取ることができます:
MCRYPT_RAND: システム乱数。
string mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] )
この関数によって返される初期化ベクトル (iv) のサイズ。この関数の 2 つのパラメーターは、先ほど紹介した暗号化アルゴリズム (cipher) と暗号化モード (mode) です。
3.mcrypt_encrypt:構文形式は次のとおりです:
int mcrypt_get_iv_size ( string $cipher , string $mode )
ベクトルを初期化した後、mcrypt_encrypt() 暗号化関数を使用してデータを暗号化できます。この関数の 5 つのパラメーターの意味は次のとおりです。 (1) cipher: 暗号化アルゴリズム。上の例では、変数 $cipher です。ここでの暗号化アルゴリズムは、初期化ベクトルの暗号化アルゴリズムとは異なる場合があります。
(2)キー: キー。上の例の変数 $key 。
(3)モード: 暗号化モード。
(4)iv: 初期化ベクトル。
4.mcrypt_decrypt構文形式は次のとおりです:
string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )
復号化関数 mcrypt_decrypt() と暗号化関数 mcrypt_encrypt() のパラメーターはほぼ同じです。唯一の違いはパラメータ データです。ここでのデータは、元のデータではなく、復号化する必要があるデータです。
注:
暗号化関数と復号化関数の暗号、キー、およびモードのパラメーターは一貫している必要があります。一貫していない場合、データは復元されません。次回も引き続き、PHP暗号化拡張ライブラリ:Mhash拡張ライブラリについてご紹介していきます。詳しくは「PHP暗号化拡張ライブラリ—Mhash拡張ライブラリ」をご覧ください! 【関連する推奨事項】
1. 関連トピックの推奨事項:「PHP 暗号化機能」
2.PHP暗号化拡張ライブラリ-Mhash拡張ライブラリの詳細な使用例
以上がPHP 暗号化拡張ライブラリ - Mcrypt 拡張ライブラリの使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。