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

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

Jul 05, 2017 am 10:56 AM
mcrypt php

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 笑い??"? ?

復元: 私の名前は何ですか? 一般の人には教えません!

<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); この関数と暗号化
関数のパラメーターはほぼ同じですが、唯一の違いは data です。つまり、data は復号化されるデータであり、元のデータではありません $str_encrypt $str.
注: 暗号化関数と復号化関数のパラメーターの暗号、キー、およびモードは同じである必要があります。一致しない場合、データは復元できません。 8 つの暗号化モードは、関数 mcrypt_list_algorithms() および mcrypt_list_modes() を通じて表示できます。

以上がPHP 暗号化拡張ライブラリ Mcrypt のインストールと例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles