ホームページ バックエンド開発 PHPチュートリアル PHP 関数を使用して暗号化と復号化を行うにはどうすればよいですか?

PHP 関数を使用して暗号化と復号化を行うにはどうすればよいですか?

Jul 24, 2023 am 09:01 AM
PHP関数 復号化 暗号化

暗号化と復号化に PHP 関数を使用するにはどうすればよいですか?

現代のインターネット環境では、データのセキュリティが特に重要です。重要な情報を保護するには、多くの場合、機密データの暗号化と復号化を行い、悪意のある取得を防ぐ必要があります。 PHP は、一般的に使用されるサーバー側スクリプト言語として、暗号化および復号化操作を実行するためのさまざまな関数を提供します。この記事では、暗号化と復号化に PHP 関数を使用する方法と、対応するコード例を紹介します。

1. 暗号化と復号化の基本概念

暗号化と復号化は、1 対の相互操作です。つまり、暗号化アルゴリズムを通じて平文を暗号文に変換し、同じアルゴリズムまたは関連するアルゴリズムを使用します。暗号文を暗号文に変換します。テキストは平文に変換されます。このプロセスでは、暗号化アルゴリズムが鍵となります。

PHP で一般的に使用される暗号化アルゴリズムには、対称暗号化と非対称暗号化が含まれます。

  1. 対称暗号化: 暗号化と復号化に同じキーを使用します。一般的に使用される対称暗号化アルゴリズムには、DES、AES などが含まれます。対称暗号化アルゴリズムは高速で、大量のデータの暗号化と復号化に適しています。サンプル コードは次のとおりです。
$key = 'myKey';
$data = 'Hello, world!';

// 加密
$encryptedData = openssl_encrypt($data, 'AES-128-ECB', $key);

// 解密
$decryptedData = openssl_decrypt($encryptedData, 'AES-128-ECB', $key);

echo $encryptedData; // 输出:cnBEVmgzcmxaY3FFc3BlQXpPZGpjdz09
echo $decryptedData; // 输出:Hello, world!
ログイン後にコピー
  1. 非対称暗号化: 暗号化と復号化に 1 組のキーを使用します。一方は公開キー、もう一方は秘密キーです。一般的に使用される非対称暗号化アルゴリズムには RSA があります。非対称暗号化アルゴリズムはセキュリティが高く、データ交換や証明書署名などのシナリオに適しています。サンプルコードは以下のとおりです。
// 生成密钥对
$keyPair = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA
));

// 提取私钥
openssl_pkey_export($keyPair, $privateKey);

// 提取公钥
$publicKey = openssl_pkey_get_details($keyPair)["key"];

$data = 'Hello, world!';

// 加密
openssl_public_encrypt($data, $encryptedData, $publicKey);

// 解密
openssl_private_decrypt($encryptedData, $decryptedData, $privateKey);

echo base64_encode($encryptedData); // 输出:QaWFCDzF2HM6zLQ+...
echo $decryptedData; // 输出:Hello, world!
ログイン後にコピー

2. その他の応用シナリオ

PHP の暗号化関数は、通常の文字列の暗号化と復号化に加えて、次のようなシナリオにも適用できます。 。

  1. パスワードの暗号化: ユーザーがシステムに登録してログインするとき、ユーザー データのセキュリティを確保するために、通常、パスワードを暗号化して保存する必要があります。サンプル コードは次のとおりです:
$password = '123456';

// 加密
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

// 验证密码
if (password_verify($password, $hashedPassword)) {
    echo '密码正确';
} else {
    echo '密码错误';
}
ログイン後にコピー
  1. URL 暗号化: 機密データを他のページに渡す必要がある場合があります。データが悪意を持って傍受されるのを防ぐために、暗号化機能を使用できます。 URLパラメータの暗号化に使用されます。サンプル コードは次のとおりです。
$data = 'Hello, world!';

// 加密
$encryptedData = urlencode(base64_encode($data));

// 解密
$decryptedData = base64_decode(urldecode($encryptedData));

echo $encryptedData; // 输出:SGVsbG8sIHdvcmxkIQ%3D%3D
echo $decryptedData; // 输出:Hello, world!
ログイン後にコピー

上記は、暗号化と復号化に PHP 関数を使用するための一般的なシナリオとサンプル コードです。実際のアプリケーションでは、データのセキュリティを向上させるために、特定のニーズに応じて適切な暗号化アルゴリズムと機能を選択する必要があります。

概要:

この記事では、暗号化と復号化に PHP 関数を使用する方法を紹介し、関連するコード例を示します。これらの暗号化機能を学習して理解することで、機密データをより適切に保護し、システムのセキュリティを向上させることができます。もちろん、暗号化アルゴリズムと機能の選択は、実際のニーズとセキュリティ要件に基づいて行う必要があります。この記事がお役に立てば幸いです!

以上がPHP 関数を使用して暗号化と復号化を行うにはどうすればよいですか?の詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

単語の復号化を設定する方法 単語の復号化を設定する方法 Mar 20, 2024 pm 04:36 PM

現在の労働環境では機密保持に対する意識がますます高まっており、ソフトウェアを使用する際にはファイルを保護するために暗号化操作が行われることが多くなっています。特に重要な文書については機密保持に対する意識を高め、文書の安全性を常に最優先に考える必要があります。では、皆さんが単語の暗号化をどの程度理解しているのかわかりませんが、具体的にはどのように操作すればよいのでしょうか?今日は、以下の説明を通じて実際に単語の解読のプロセスをお見せしますので、単語の解読の知識を学ぶ必要がある友人は、今日のコースを見逃さないでください。ファイルを保護するには、まず復号化操作が必要です。これは、ファイルが保護ドキュメントとして処理されることを意味します。ファイルに対してこれを実行した後、ファイルを再度開くとプロンプトが表示されます。ファイルを復号化する方法はパスワードを入力することです。

winrar-winrar 暗号化圧縮パッケージ方式で圧縮パッケージを暗号化する方法 winrar-winrar 暗号化圧縮パッケージ方式で圧縮パッケージを暗号化する方法 Mar 23, 2024 pm 12:10 PM

エディターは、暗号化と圧縮の 3 つの方法を紹介します。 方法 1: 暗号化 最も簡単な暗号化方法は、ファイルを暗号化するときに設定したいパスワードを入力することで、暗号化と圧縮が完了します。方法 2: 自動暗号化 通常の暗号化方法では、各ファイルを暗号化するときにパスワードを入力する必要がありますが、多数の圧縮パッケージを暗号化する場合、パスワードが同じ場合は、WinRAR で自動暗号化を設定できます。通常のようにファイルを圧縮すると、WinRAR は各圧縮パッケージにパスワードを追加します。方法は次のとおりです。 WinRAR を開き、設定インターフェイスで [オプション] - [設定] をクリックし、[圧縮] に切り替え、[デフォルト構成の作成] - [パスワードの設定] をクリックします。 ここで設定したいパスワードを入力し、[OK] をクリックして設定を完了します。なおす

PHP 関数と他の言語の関数の比較 PHP 関数と他の言語の関数の比較 Apr 10, 2024 am 10:03 AM

PHP 関数には他の言語の関数との類似点がありますが、いくつかの独自の機能もあります。構文的には、PHP 関数は function で宣言され、JavaScript は function で宣言され、Python は def で宣言されます。パラメータと戻り値の点では、PHP 関数はパラメータを受け入れて値を返します。JavaScript と Python にも同様の関数がありますが、構文が異なります。スコープに関しては、PHP、JavaScript、Python の関数はすべてグローバル スコープまたはローカル スコープを持ち、グローバル関数にはどこからでもアクセスできますが、ローカル関数には宣言スコープ内でのみアクセスできます。

PHP 関数のパフォーマンスはどの程度ですか? PHP 関数のパフォーマンスはどの程度ですか? Apr 18, 2024 pm 06:45 PM

さまざまな PHP 関数のパフォーマンスは、アプリケーションの効率にとって非常に重要です。パフォーマンスの良い関数には echo や print などがありますが、str_replace、array_merge、file_get_contents などの関数のパフォーマンスは低くなります。たとえば、str_replace 関数は文字列の置換に使用され、中程度のパフォーマンスを発揮しますが、sprintf 関数は文字列の書式設定に使用されます。パフォーマンス分析によると、1 つの例の実行にかかる時間はわずか 0.05 ミリ秒であり、関数が適切に実行されることが証明されています。したがって、関数を賢く使用すると、アプリケーションをより高速かつ効率的に実行できます。

PHP 関数と Flutter 関数の類似点と相違点 PHP 関数と Flutter 関数の類似点と相違点 Apr 24, 2024 pm 01:12 PM

PHP 関数と Flutter 関数の主な違いは、宣言、構文、戻り値の型です。 PHP 関数は暗黙的な戻り値の型変換を使用しますが、Flutter 関数は ? を通じてオプションのパラメータを指定できますが、Flutter 関数は必須パラメータと [] を使用して名前付けパラメータを渡します。 Flutter 関数は、{} を使用して名前付きパラメータを指定します。

EZVIZ Cloud Video の暗号化されたコンピュータ バージョンを復号化するにはどうすればよいですか? -EZVIZ Cloud Video PC バージョンは全画面表示で終了しますか? EZVIZ Cloud Video の暗号化されたコンピュータ バージョンを復号化するにはどうすればよいですか? -EZVIZ Cloud Video PC バージョンは全画面表示で終了しますか? Mar 18, 2024 pm 12:25 PM

EZVIZ クラウドでビデオを復号化する方法: EZVIZ クラウドでビデオを復号化する方法は数多くありますが、そのうちの 1 つは EZVIZ Cloud モバイル アプリを使用する方法です。ユーザーは、デバイス リストを入力し、復号化するカメラを選択して、デバイスの詳細ページに入るだけです。デバイスの詳細ページで、[設定] オプションを見つけ、[ビデオ暗号化] を選択して関連する設定を行います。ビデオ暗号化設定インターフェイスでは、ビデオ暗号化をオフにするオプションを選択し、設定を保存して復号化操作を完了できます。この簡単な手順により、ユーザーはビデオを簡単に復号化でき、カメラの使用の利便性が向上します。 EZVIZ Cloud のコンピュータクライアントを使用している場合も、同様の手順でビデオ暗号化をキャンセルできます。ログインして対応するカメラを選択し、デバイスの詳細インターフェイスに入り、設定でビデオの追加を探します。

PHP関数にパラメータを渡すにはどうすればよいですか? PHP関数にパラメータを渡すにはどうすればよいですか? Apr 10, 2024 pm 05:21 PM

PHP 関数はパラメータを介して値を渡すことができ、パラメータは値渡しと参照渡しに分けられます: 値渡し: 関数内のパラメータの変更は元の値に影響しません; 参照渡し: 関数内のパラメータの変更は元の値に影響しません元の値に影響を与えます。さらに、データの合計の計算などの操作のパラメーターとして配列を渡すこともできます。

gate.ioインストールパッケージを無料で入手してください gate.ioインストールパッケージを無料で入手してください Feb 21, 2025 pm 08:21 PM

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

See all articles