ホームページ バックエンド開発 PHPチュートリアル PHP で対称暗号化と非対称暗号化を行うにはどうすればよいですか?

PHP で対称暗号化と非対称暗号化を行うにはどうすればよいですか?

May 21, 2023 pm 03:10 PM
暗号化アルゴリズム 対称暗号化 非対称暗号化

ネットワーク セキュリティの分野では、暗号化テクノロジは非常に重要な技術手段であり、データの暗号化と復号化を行ってデータのセキュリティを確保できます。人気のあるサーバー側プログラミング言語として、PHP は、さまざまなアプリケーション シナリオのニーズを満たす対称暗号化および非対称暗号化のサポートも提供します。

    #対称暗号化
対称暗号化とは、暗号化と復号化に同じキーを使用する暗号化方式を指します。 DES、3DES、AES など、多くの対称暗号化アルゴリズムがあります。 PHP では、mcrypt 拡張ライブラリによって提供される関数を使用して対称暗号化を実装できます。

サンプル コードは次のとおりです。

$key = '123456789'; // 密钥
$data = 'Hello World'; // 待加密字符串
$iv = mcrypt_create_iv(mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_RAND);
$cipher = mcrypt_encrypt(MCRYPT_DES, $key, $data, MCRYPT_MODE_CBC, $iv);
echo base64_encode($cipher); // 输出加密后的字符串
ログイン後にコピー

上記のコードでは、DES 暗号化は mcrypt_encrypt 関数によって実行され、MCRYPT_MODE_CBC モードが埋め込みに使用されます。 $key は対称暗号化のキー、$data は暗号化される平文文字列、$iv はランダムな初期化ベクトルです。

復号化のサンプル コードは次のとおりです。

$cipher = base64_decode('JnFXVC9e+rzR8oUgM67Q0w=='); // 加密后的字符串
$key = '123456789'; // 密钥
$iv = mcrypt_create_iv(mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_RAND);
$plain = mcrypt_decrypt(MCRYPT_DES, $key, $cipher, MCRYPT_MODE_CBC, $iv);
echo $plain; // 输出解密后的字符串
ログイン後にコピー

    非対称暗号化
非対称暗号化アルゴリズムでは、暗号化と復号化にキーのペアが必要です。公開キー キーは公開できますが、秘密キーは秘密にしておく必要があります。一般的に使用される非対称暗号化アルゴリズムには、RSA、DSA などが含まれます。 PHP では、openssl 拡張ライブラリによって提供される関数を使用して非対称暗号化を実装できます。

サンプル コードは次のとおりです。

$data = 'Hello World'; // 待加密字符串
$res = openssl_pkey_new(); // 生成密钥对
openssl_pkey_export($res, $privateKey); // 获取私钥
$publicKey = openssl_pkey_get_details($res)["key"]; // 获取公钥
openssl_public_encrypt($data, $cipher, $publicKey); // 加密数据
echo base64_encode($cipher); // 输出加密后的字符串
ログイン後にコピー

上記のコードでは、まず openssl_pkey_new 関数を使用して公開キーと秘密キーのペアを生成し、次に openssl_public_encrypt 関数を使用してデータを暗号化します。 。このとき取得した $publicKey は公開することができますが、$privateKey は秘密にしておく必要があります。

復号化のサンプル コードは次のとおりです。

$cipher = base64_decode('RvnOeNe+p8LtlpuUcq0wqFoX2yUaGXvY6FHlWpT0NQwzVQwVcDSnkw4C6YJMvnsMH4N5JDP18RI8x7CFqUCdJg=='); // 加密后的字符串
$privateKey = '-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----'; // 私钥
openssl_private_decrypt($cipher, $plain, $privateKey); // 解密数据
echo $plain; // 输出解密后的字符串
ログイン後にコピー

上記のコードでは、最初に openssl_pkey_export 関数を使用して秘密キーの文字列形式を取得し、次に openssl_private_decrypt 関数を使用して秘密キーを復号化します。暗号化されたデータを取得し、元の平文を取得します。

概要:

上記の紹介を通じて、PHP では mcrypt および openssl 拡張ライブラリを使用して対称暗号化および非対称暗号化を実装できることがわかりました。アプリケーション シナリオのさまざまな暗号化要件に応じて、さまざまな暗号化アルゴリズムと暗号化方式の使用を柔軟に選択できます。もちろん、実際の暗号化プロセスでは、データのセキュリティを確保するためのキーの保護と管理にも注意を払う必要があります。

以上が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衣類リムーバー

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への応用 Jun 23, 2023 am 10:42 AM

ネットワーク技術の継続的な発展に伴い、Web アプリケーションの普及が進んでおり、Web アプリケーションにおける情報セキュリティの重要性が増しています。 Web アプリケーションにおける情報セキュリティの問題を解決するために、人々は多くの暗号化アルゴリズムを開発してきました。その中で最も有名なものは、RSA、DES およびその他のアルゴリズムです。しかし、暗号アルゴリズムの復号には多くの計算量と時間を要し、システムへの負担が大きいため、短時間で高速に暗号化と復号を行うことができる高速暗号アルゴリズムが登場しました。この記事では、PHP の高レベル関数を紹介します。

Java の対称暗号化暗号 Java の対称暗号化暗号 Sep 13, 2023 pm 03:49 PM

はじめに対称暗号化はキー暗号化とも呼ばれ、暗号化と復号化に同じキーが使用される暗号化方式です。この暗号化方法は高速かつ効率的で、大量のデータの暗号化に適しています。最も一般的に使用される対称暗号化アルゴリズムは、Advanced Encryption Standard (AES) です。 Java は、SecretKey、Cipher、KeyGenerator などの javax.crypto パッケージ内のクラスを含む、対称暗号化に対する強力なサポートを提供します。 Java の対称暗号化 javax.crypto パッケージの JavaCipher クラスは、暗号化と復号化のための暗号化関数を提供します。これは、Java Cryptozoology Extensions (JCE) フレームワークの中核を形成します。 Java では、Cipher クラスは対称暗号化関数を提供し、K

PHP で対称暗号化と非対称暗号化を行うにはどうすればよいですか? PHP で対称暗号化と非対称暗号化を行うにはどうすればよいですか? May 21, 2023 pm 03:10 PM

ネットワークセキュリティの分野において、暗号化技術はデータを暗号化および復号化してデータのセキュリティを確保する非常に重要な技術手段です。人気のあるサーバー側プログラミング言語として、PHP は、さまざまなアプリケーション シナリオのニーズを満たす対称暗号化および非対称暗号化のサポートも提供します。対称暗号化 対称暗号化とは、暗号化と復号化に同じキーを使用する暗号化方式を指します。 DES、3DES、AES など、多くの対称暗号化アルゴリズムがあります。 PHP では、これは mcrypt 拡張ライブラリによって提供される関数を使用して実現できます。

Python を使用して RSA 暗号化アルゴリズムを作成するにはどうすればよいですか? Python を使用して RSA 暗号化アルゴリズムを作成するにはどうすればよいですか? Sep 20, 2023 pm 01:21 PM

Python を使用して RSA 暗号化アルゴリズムを作成するにはどうすればよいですか?はじめに: RSA は、情報セキュリティの分野で広く使用されている非対称暗号化アルゴリズムです。最新の通信では、機密データの暗号化と復号化に RSA 暗号化アルゴリズムが一般的に使用されています。この記事では、Python を使用して RSA 暗号化アルゴリズムを作成する方法を紹介し、具体的なコード例を示します。 Python ライブラリのインストール RSA 暗号化アルゴリズムの作成を開始する前に、Python 暗号化ライブラリをインストールする必要があります。次のコマンドを使用してインストールできます: pipinstallrsa generated

PHPの暗号化アルゴリズムとは何ですか? PHPの暗号化アルゴリズムとは何ですか? Aug 31, 2023 pm 05:24 PM

PHP 暗号化アルゴリズムには、MD5 アルゴリズム、SHA アルゴリズム、AES アルゴリズム、RSA アルゴリズム、Base64 エンコード、DES アルゴリズム、RC4 アルゴリズム、Blowfish アルゴリズムなどが含まれます。詳細な紹介: 1. MD5 アルゴリズムは、任意の長さのデータを固定長のハッシュ値に変換するために使用されます。PHP では、md5() 関数を使用して文字列の MD5 ハッシュ値を計算できます。2. SHA アルゴリズム (以下を含む) SHA -1. SHA-256、SHA-512 など。これらのアルゴリズムには、PHP に対応する機能があります。3. AES アルゴリズムなど。

暗号化アルゴリズムを使用して PHP Web サイトのユーザーデータを保護するにはどうすればよいですか? 暗号化アルゴリズムを使用して PHP Web サイトのユーザーデータを保護するにはどうすればよいですか? Aug 19, 2023 pm 04:00 PM

暗号化アルゴリズムを使用して PHP Web サイトのユーザーデータを保護するにはどうすればよいですか?インターネットの急速な発展に伴い、Web サイトのユーザーデータ保護がますます重要になってきています。 PHP 開発では、暗号化アルゴリズムを使用してユーザー データのセキュリティを保護できます。この記事では、一般的に使用される暗号化アルゴリズムと、それらを PHP Web サイトで使用してユーザー データを暗号化する方法を紹介します。 1. 暗号化アルゴリズムの選択 PHP Web サイトの場合、ユーザー データのセキュリティを保護するために、次の一般的に使用される暗号化アルゴリズムを選択できます。 1. 対称暗号化アルゴリズム: このアルゴリズムは同じ暗号化アルゴリズムを使用します。

ネットワークセキュリティ技術の開発の歴史 ネットワークセキュリティ技術の開発の歴史 Jun 11, 2023 pm 03:41 PM

インターネット技術の活発な発展に伴い、ネットワーク セキュリティは今日の世界的な情報化の発展における重要な要素の 1 つとなっています。サイバー攻撃やサイバー犯罪が絶え間なく発生する中、ネットワークのセキュリティを保護することは私たちにとって避けられない選択となっています。この記事では、ネットワークセキュリティ技術の発展の歴史に焦点を当てます。 1. 暗号動物学の時代(1960年代~1980年代) 暗号時代のネットワークセキュリティ技術は、主に暗号の考え方に基づいて開発されました。この時代、コンピューターは単なる巨大な機械であり、インターネットの使用は現在ほど普及しておらず、限られたものでした。

PHP で一般的に使用される暗号化アルゴリズムは何ですか? PHP で一般的に使用される暗号化アルゴリズムは何ですか? May 12, 2023 pm 06:51 PM

インターネットの発展に伴い、データのセキュリティは私たちが日々の業務で注意を払わなければならない深刻な問題となっています。機密性の高い個人情報やビジネス データに関しては、暗号化が特に重要になります。 PHP の開発では、いくつかの暗号化アルゴリズムが広く使用されています。PHP で一般的に使用される暗号化アルゴリズムを見てみましょう。 1. Base64 エンコード Web ページや電子メールでは文字列型データのみを送信でき、バイナリ データを直接送信できないため、Web ページや電子メールでバイナリ データを送信する場合は、Base64 エンコードがよく使用されます。 Base64 は解決策です

See all articles