PHP データ暗号化_PHP チュートリアル
データ暗号化は、特にインターネット上で発生する多数のトランザクションと送信される大量のデータを考慮すると、私たちの生活の中でますます重要になっています。セキュリティ対策に興味がある場合は、PHP が提供する一連のセキュリティ機能についても理解する必要があります。この記事では、アプリケーション ソフトウェアにセキュリティ機能を追加できるように、これらの機能の紹介と基本的な使用方法を説明します。
予備知識
PHP のセキュリティ機能を詳しく紹介する前に、暗号化についてまだ詳しくない読者に、暗号化に関する基本的な知識を説明するために少し時間を割く必要があります。暗号化の基本概念をすでによく理解している場合は、読み飛ばしていただいても構いません。この部分。 。
暗号動物学は、大まかに言うと、暗号化と復号化の研究と実験です。暗号化は、わかりやすいデータを理解できないデータに変換するプロセスであり、復号化は、理解できないデータを元のわかりやすいデータに変換するプロセスです。理解しにくい情報を暗号、理解しやすい情報を平文と呼びます。
データの暗号化/復号化には特定のアルゴリズムが必要です。これらのアルゴリズムは、有名なシーザー コードなど、非常に単純なものもありますが、現在の暗号化アルゴリズムは比較的複雑で、既存の方法では解読できないものもあります。
PHP暗号化機能
Windows 以外のプラットフォームの使用経験が少しある人は、crypt() に精通しているかもしれません。この関数は、一部のプレーン コードを暗号化できますが、パスワードを元のプレーン コードに変換することはできません。これは一見役に立たない機能のように見えるかもしれませんが、システム パスワードの整合性を確保するために広く使用されています。一方向暗号化されたパスワードは、第三者の手に渡ると平文に戻すことができないため、ほとんど役に立ちません。ユーザーが入力したパスワードを検証するときも、ユーザーの入力は一方向アルゴリズムを使用します。入力が保存されている暗号化されたパスワードと一致する場合、入力されたパスワードは正しい必要があります。
PHP は、crypt() 関数を使用して一方向の暗号化を完了する機能も提供します。ここで機能を簡単に紹介します:
string crypt (string input_string [, string Salt])
input_string パラメータは暗号化する必要がある文字列で、2 番目のオプションのソルトは暗号化されたパスワードに影響を与える可能性のあるビット文字列で、いわゆる事前計算攻撃の可能性をさらに排除します。デフォルトでは、PHP は 2 文字の DES 干渉文字列を使用します。システムで MD5 (MD5 アルゴリズムについては後で紹介します) を使用する場合は、12 文字の干渉文字列が使用されます。ちなみに、次のコマンドを実行すると、システムが使用する干渉文字列の長さを確認できます:
print "私のシステムソルトサイズは: CRYPT_SALT_LENGTH;
システムは他の暗号化アルゴリズムもサポートする場合があります。 crypt() は 4 つのアルゴリズムをサポートします。サポートするアルゴリズムと対応する Salt パラメーターの長さは次のとおりです。
アルゴリズムソルトの長さ
CRYPT_STD_DES 2 文字 (デフォルト)
CRYPT_EXT_DES 9 文字
CRYPT_MD5 $
で始まる12文字
CRYPT_BLOWFISH $
で始まる 16 文字
crypt() を使用してユーザー認証を実装します
crypt() 関数の例として、正しいユーザー名とパスワードを提供できるユーザーのみにディレクトリへのアクセスを制限する PHP スクリプトを作成する状況を考えてみましょう。私のお気に入りのデータベースである MySQL のテーブルにデータを保存します。 members という名前のテーブルを作成することから例を始めましょう:
mysql>CREATE TABLE メンバー (
->ユーザー名 CHAR(14) NOT NULL,
->パスワード CHAR(32) NOT NULL,
->主キー(ユーザー名)
->);
次に、次のデータがすでにテーブルに格納されていると仮定します。
ユーザー名 パスワード
クラーク・ケロD1C377lKE
ブルース ba1T7vnz9AWgk
ピーター・パルvRWsRLZ4U
これらの暗号化されたパスワードに対応する平文コードは、それぞれ kent、banner、parker です。各パスワードの最初の 2 文字に注意してください。これは、次のコードを使用してパスワードの最初の 2 文字に基づいて干渉文字列を作成したためです。
$enteredPassword.
$salt = substr($enteredPassword, 0, 2);
$userPswd = crypt($enteredPassword, $salt);
// $userPswd はユーザー名と一緒に MySQL に保存されます
Apache のパスワード応答認証構成を使用して、ユーザーにユーザー名とパスワードの入力を求めます。PHP についてはあまり知られていませんが、Apache パスワード応答システムによって入力されたユーザー名とパスワードが $PHP_AUTH_USER および $PHP_AUTH_PW I として認識されるということです。は、認証スクリプトでこれら 2 つの変数を使用します。以下のコードをよりよく理解するために、時間をかけて以下のスクリプトを注意深く読み、説明にもっと注意を払ってください:
crypt() と Apache のパスワード応答検証システムの応用
$host = "ローカルホスト";
$user = "ゾロ";
$pswd = "地獄のオドリー";
$db = "ユーザー";
// 認証を False に設定します
$authorization = 0;
// ユーザーがユーザー名とパスワードを入力したことを確認します
if (isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)) :
mysql_pconnect($host, $user, $pswd) または die("MySQL に接続できません
サーバー!");

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

Gate.ioは、インストールパッケージをダウンロードしてデバイスにインストールすることで使用できる人気のある暗号通貨交換です。インストールパッケージを取得する手順は次のとおりです。Gate.ioの公式Webサイトにアクセスし、「ダウンロード」をクリックし、対応するオペレーティングシステム(Windows、Mac、またはLinux)を選択し、インストールパッケージをコンピューターにダウンロードします。スムーズなインストールを確保するために、インストール中に一時的にウイルス対策ソフトウェアまたはファイアウォールを一時的に無効にすることをお勧めします。完了後、ユーザーはGATE.IOアカウントを作成して使用を開始する必要があります。
