ホームページ バックエンド開発 PHPチュートリアル mcrypt を有効にした暗号化と復号化プロセスの詳細な分析_PHP チュートリアル

mcrypt を有効にした暗号化と復号化プロセスの詳細な分析_PHP チュートリアル

Jul 21, 2016 pm 02:59 PM
mcrypt 関数 暗号化 暗号化とデコード できる 有効にする 成し遂げる 図書館 拡大する できる 復号化 解析する 詳しい プロセス

Mcrypt 拡張ライブラリは、暗号化および復号化機能を実現できます。つまり、平文を暗号化するだけでなく、暗号文を復元することもできます。

1. PHP 暗号化拡張ライブラリ Mcrypt のインストール
標準的な PHP インストール プロセスでは Mrcypt はインストールされませんが、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 bullfish enigma rc2 Triples

Mcrypt でサポートされている暗号化モードは次のとおりです: cbc cfb ctr ecb ncfb nofb ofb stream

これらのアルゴリズムとモードは、次の Mcrypt アプリケーションの例に示すように、アプリケーション内で定数で表す必要があります。
DES アルゴリズムは MCRYPT_DES で表されます。 MCRYPT_MODE_ECB による;
3. PHP 暗号化拡張ライブラリ Mcrypt アプリケーション

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

コードをコピーします

コードは次のとおりです。 : $str = " 私はリーユンです";
$key = "123qwe.019860905061X";
$cipher = MCRYPT_RIJNDAEL_128;
$mode = MCRYPT_MODE_ECB;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$)モード),MCRYPT_RAN D);

echo "元のテキスト: ".$str."
";
$str_encrypt = mcrypt_encrypt($cipher,$key,$str,$mode,$iv);

echo "暗号化されたコンテンツは:"。 $str_encrypt."
";


$str_decrypt = mcrypt_decrypt($cipher,$key,$str_encrypt,$mode,$iv);

echo "復号化されたコンテンツ: ".$str_decrypt."
";


実行結果:


原文:私は李雲です暗号化された内容は:B @鴹�=(私はZ%を主張します復号された内容:私は李雲です



この例からわかるように、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 は、それぞれアルゴリズムと暗号化モードを参照します。

<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 です。

//マニュアルに書く:


コードをコピーする

コードは次のとおりです: //初期化ベクトル iv のサイズを指定します:
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE _ECB);
//初期化ベクトルの作成 :
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
//暗号化パスワード:
$key = "123qwe.019860905061x";
//元のコンテンツ(暗号化されていない):
$text = "My名前はアダム・リーです! ";
echo $text. "
n";
//暗号化されたコンテンツ:
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
echo $crypttext . "n< ;br>";
//暗号化されたコンテンツを復号化します:
$str_decrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
echo $str_decrypt;


以下は暗号化/復号化リクエストの例です:
コードをコピーします コードは次のとおりです:

$request_params = array(
'controller' => 'todo',
'action ' => '読み取り',
'ユーザー名' => "bl",
'ユーザーパス' => "a1"
);

$private_key = "28e336ac6c9423d946ba02d19c6a2632";

//リクエストの暗号化

$enc_request =base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $private_key, json_encode($request_params), MCRYPT_MODE_ECB));
echo "CRYPT:".$enc_request."
";

//復号リクエスト

$params = json_decode(trim(mcrypt_decrypt( MCRYPT_RIJNDAEL_256, $private_key,base64_decode($enc_request), MCRYPT_MODE_ECB )),true);
echo "ENCRYPT:
";

//print result

var_dump($params);


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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 関数の拡張機能とサードパーティ モジュール PHP 関数の拡張機能とサードパーティ モジュール Apr 13, 2024 pm 02:12 PM

PHP 関数の機能を拡張するには、拡張機能とサードパーティのモジュールを使用できます。拡張機能は、pecl パッケージ マネージャーを通じてインストールおよび有効化できる追加の関数とクラスを提供します。サードパーティ モジュールは特定の機能を提供し、Composer パッケージ マネージャーを通じてインストールできます。実際の例には、拡張機能を使用して複雑な JSON データを解析したり、モジュールを使用してデータを検証したりすることが含まれます。

Huawei携帯電話にWeChatクローン機能を実装する方法 Huawei携帯電話にWeChatクローン機能を実装する方法 Mar 24, 2024 pm 06:03 PM

Huawei 携帯電話に WeChat クローン機能を実装する方法 ソーシャル ソフトウェアの人気と人々のプライバシーとセキュリティの重視に伴い、WeChat クローン機能は徐々に人々の注目を集めるようになりました。 WeChat クローン機能を使用すると、ユーザーは同じ携帯電話で複数の WeChat アカウントに同時にログインできるため、管理と使用が容易になります。 Huawei携帯電話にWeChatクローン機能を実装するのは難しくなく、次の手順に従うだけです。ステップ 1: 携帯電話システムのバージョンと WeChat のバージョンが要件を満たしていることを確認する まず、Huawei 携帯電話システムのバージョンと WeChat アプリが最新バージョンに更新されていることを確認します。

PHPにおけるmidpointの意味と使い方の分析 PHPにおけるmidpointの意味と使い方の分析 Mar 27, 2024 pm 08:57 PM

【PHPにおけるミッドポイントの意味と使い方の分析】 PHPでは、ミッドポイント(.)は2つの文字列やオブジェクトのプロパティやメソッドを接続するためによく使われる演算子です。この記事では、PHP における中間点の意味と使用法を詳しく掘り下げ、具体的なコード例を示して説明します。 1. 文字列中間点演算子の接続 PHP での最も一般的な使用法は、2 つの文字列を接続することです。 2 つの文字列の間に . を置くと、それらをつなぎ合わせて新しい文字列を形成できます。 $string1=&qu

Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法 Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法 Mar 27, 2024 pm 05:24 PM

Win11 の新機能の分析: Microsoft アカウントへのログインをスキップする方法 Windows 11 のリリースにより、多くのユーザーは、Windows 11 がより便利で新しい機能をもたらしたことに気づきました。ただし、ユーザーによっては、自分のシステムが Microsoft アカウントに関連付けられることを好まず、この手順をスキップしたい場合があります。この記事では、ユーザーが Windows 11 で Microsoft アカウントへのログインをスキップし、よりプライベートで自律的なエクスペリエンスを実現するのに役立ついくつかの方法を紹介します。まず、一部のユーザーが Microsoft アカウントにログインすることに抵抗がある理由を理解しましょう。一方で、一部のユーザーは次のことを心配しています。

VSCode について: このツールは何に使用されますか? VSCode について: このツールは何に使用されますか? Mar 25, 2024 pm 03:06 PM

「VSCode について: このツールは何に使用されますか?」 》初心者でも経験豊富な開発者でも、プログラマーとしてはコード編集ツールを使わずにはいられません。数ある編集ツールの中でも、Visual Studio Code (略して VSCode) は、オープンソースで軽量かつ強力なコード エディターとして開発者の間で非常に人気があります。では、VSCode は正確に何に使用されるのでしょうか?この記事では、VSCode の機能と使用法を詳しく説明し、読者に役立つ具体的なコード例を提供します。

GateToken(GT)通貨とは何ですか? GT コインの機能とトークンエコノミクスの紹介 GateToken(GT)通貨とは何ですか? GT コインの機能とトークンエコノミクスの紹介 Jul 15, 2024 pm 04:36 PM

GateToken(GT)通貨とは何ですか? GT (GateToken) は、GateChain チェーンのネイティブ資産であり、Gate.io の公式プラットフォーム通貨です。 GT コインの価値は、Gate.io および GateChain エコロジーの発展と密接に関連しています。ゲートチェーンとは何ですか? GateChain は 2018 年に誕生し、Gate.io によって開始された新世代の高性能パブリック チェーンです。 GateChain は、ユーザーのオンチェーン資産のセキュリティを保護し、便利な分散トランザクション サービスを提供することに重点を置いています。 GateChain の目標は、エンタープライズレベルの安全で効率的な分散型デジタル資産ストレージ、配信、およびトランザクションのエコシステムを構築することです。ゲートチェーンにはオリジナルがあります

PHP 関数の戻り値の種類は、PHP 拡張機能の相互運用性にどのように関係しますか? PHP 関数の戻り値の種類は、PHP 拡張機能の相互運用性にどのように関係しますか? Apr 15, 2024 pm 09:06 PM

PHP 関数の戻り値の型は、各関数の戻り値の型を明確に指定する型記述構文として表現できます。戻り値の型を理解することは、PHP コア エンジンと互換性のある拡張機能を作成し、予期しない変換を回避し、効率を向上させ、コードの可読性を高めるために重要です。具体的には、拡張関数は戻り値の型を定義できるため、PHP エンジンはその型に基づいてコードの実行を最適化し、開発者が戻り値を明示的に処理できるようになります。実際には、拡張関数は PHP オブジェクトを返すことができ、PHP コードは戻り値の型に従って返された結果を処理できます。

モバイル アプリと Jiaqin アプリの用途は何ですか? モバイル アプリと Jiaqin アプリの用途は何ですか? Mar 27, 2024 pm 09:01 PM

モバイル Hejiaqin APP は、家族管理、インテリジェント制御、家族コミュニケーションを統合する包括的なソフトウェアです。インテリジェントで便利な操作を通じて、ユーザーにとって快適でインテリジェントで調和のとれた家庭環境を構築することを目指しています。このアプリケーションを通じて、ユーザーは自宅のさまざまなスマートデバイスを簡単に制御および管理し、スマートライフがもたらす利便性を享受できます。では、モバイル アプリと Jiaqin アプリの具体的な機能は何ですか? 詳細を知りたいユーザーは、この記事に従って詳細を確認してください。 Mobile and Jiaqin アプリの使い方チュートリアル: Mobile and Jiaqin アプリの用途は何ですか? IT の知識がなくても、簡単にネットワークを管理できます。 3. 自宅から何千マイルも離れていても、家に帰って視聴できる 4. 豊富な機能で、スマートライフを楽しむ

See all articles