ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して基本的な暗号化および復号化操作を実行する方法

PHP を使用して基本的な暗号化および復号化操作を実行する方法

PHPz
PHPzオリジナル
2023-06-22 14:09:381347ブラウズ

現代のインターネット環境では、データの機密性が最も重要な要素の 1 つになっています。このため、さまざまな暗号化技術も広く使用されています。 Web 開発では、PHP 言語はその使いやすさと効率性により、非常に人気のあるプログラミング言語となっています。したがって、PHP を使用して基本的な暗号化および復号化操作を実行する方法を理解することは非常に実用的であり、必要です。この記事では、この問題に対する基本的な解決策をいくつか紹介します。

1.暗号化技術とは何ですか?

暗号化テクノロジとは、データを読み取れない (または読みにくくする) ために、データに対していくつかの特別な操作と処理を実行するプロセスを指します。暗号化により、データのセキュリティを効果的に保護し、データ漏洩や悪意のある改ざんを回避できます。暗号化操作には通常、データ入力、暗号化アルゴリズム処理、鍵生成、暗号文出力などのステップが含まれます。

2. PHP

  1. md5 で一般的に使用される暗号化テクノロジ:

MD5 は暗号化アルゴリズムであり、PHP も対応する機能を提供します。オペレーション。例:

$password = '123456';
$encrypted_password = md5($password);
  1. sha1:

MD5 と同様に、sha1 も一般的な暗号化アルゴリズムです。使用方法も非常に簡単です。例:

$password = '123456';
$encrypted_password = sha1($password);
  1. base64:

Base64 は、バイナリ データを ASCII 文字に変換するエンコード方式で、テキスト プロトコルの転送でよく使用されます。バイナリデータ。 PHP は、Base64 暗号化および復号化操作を実行するための対応する関数も提供します。例:

$str = 'Hello, world!';
$encoded_str = base64_encode($str);    // 进行Base64编码
$decoded_str = base64_decode($encoded_str);    // 进行Base64解码

3. PHP を使用して暗号化および復号化操作を行う方法

上記の暗号化テクノロジはデータのセキュリティを保護できますが、すべて一方向の暗号化方式です。つまり、データは一度暗号化されると復元するのが困難になります。一部のシナリオでは、双方向の暗号化方式、つまりユーザーのパスワードの暗号化など、暗号化と復号化ができる方式を使用する必要があります。

  1. 対称暗号化:

対称暗号化方式とは、暗号化と復号化の操作に同じキーを使用することを指し、暗号化と復号化はクライアントとサーバーで同時に実行できます。行為。 PHP では、openssl 拡張ライブラリは対称暗号化のサポートを提供します。例:

$data = 'Hello, world!';
$key = '123456';
$method = 'AES-256-CBC';

// 加密
$iv = openssl_random_pseudo_bytes(16);
$ciphertext = openssl_encrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv);

// 解密
$plaintext = openssl_decrypt($ciphertext, $method, $key, OPENSSL_RAW_DATA, $iv);

AES-256-CBC アルゴリズムは暗号化および復号化操作に使用され、ランダムに生成された 16 バイトの IV (初期化ベクトル) が暗号化強度を強化するために使用されます。復号化操作を実行するには、データ送信と一緒に IV も送信する必要があることに注意してください。

  1. 非対称暗号化:

非対称暗号化方式とは、暗号化および復号化操作に公開キーと秘密キーと呼ばれる 1 組のキーを使用することを指します。 。公開キーは公開してデータの暗号化に使用できますが、秘密キーはユーザーのみが知っており、データの復号化に使用されます。 PHP では、非対称暗号化操作を実行するために、対応する openssl 関数も提供されています。例:

$data = 'Hello, world!';
$keypair = openssl_pkey_new();    // 生成密钥对
openssl_pkey_export($keypair, $private_key);    // 导出私钥
$pub_key = openssl_pkey_get_details($keypair)["key"];    // 导出公钥

// 加密
openssl_public_encrypt($data, $encrypted, $pub_key);

// 解密
openssl_private_decrypt($encrypted, $decrypted, $private_key);

ここでは、データの暗号化時の暗号化に公開キーを使用し、データの復号化時の復号化に秘密キーを使用して、新しいキー ペアが生成されます。

つまり、PHP は Web 開発における暗号化および復号化操作に対する豊富で便利なサポートを提供しており、開発者が暗号化および復号化機能を簡単に実装できる強力な拡張ライブラリ (openssl など) も多数あります。ただし、暗号化方式とアルゴリズムが異なれば特性、長所、短所も異なるため、開発者は特定のアプリケーション シナリオに基づいて適切な暗号化方式を選択する必要があることに注意してください。

以上がPHP を使用して基本的な暗号化および復号化操作を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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