ホームページ  >  記事  >  バックエンド開発  >  PHP 暗号化拡張ライブラリ Mcrypt のインストールと例

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

怪我咯
怪我咯オリジナル
2017-07-05 10:56:021493ブラウズ

PHP 暗号化拡張ライブラリには、Mcrypt と Mhash が含まれます。今日は、PHP プログラマーがコード プログラムを作成する際の Mcrypt の機能と例について説明します。コードの高いパフォーマンスを確保することに加えて、もう 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 つの暗号化モードをサポートしています。具体的には、関数
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 として表現されます。

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

コードは次のとおりです:

<?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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。