PHP rsa 暗号化と復号化の例
1. 暗号化と復号化の最初のステップは、公開キーと秘密キーのペアを生成することです。秘密キーで暗号化されたコンテンツは、公開キーで復号化できます (逆も同様です)。
オープン ソースの RSA キーをダウンロードします。 openssl 生成ツール (通常は Linux システム (すべてこのプログラムに付属) を使用し、それを別のフォルダーに解凍し、bin ディレクトリに入り、次のコマンドを実行します:
openssl genrsa -out rsa_private_key.pem 1024
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
最初のコマンドは元の RSA 秘密鍵ファイル rsa_private_key.pem を生成し、2 番目のコマンドはコマンドは元の RSA 秘密鍵を pkcs8 形式に変換し、3 番目の項目は RSA 公開鍵 rsa_public_key.pem を生成します
上記から、対応する公開鍵は秘密鍵を通じて生成できることがわかります。そのため、秘密鍵 private_key を使用します.pem をサーバー側に配置し、公開鍵を Android や iOS などのフロントエンドに配布します
2. 生成された公開鍵と秘密鍵を php での暗号化と復号に使用し、コードを直接アップロードします
- $private_key = '-----RSA 秘密鍵を開始-----
- MIICXQIBAAKBgQC3/ /SR2TXWRC2Dysx8vNGLQT3Y7LDU9+LBLI6E1KS5LFC5JL
- TGF7KBTSKBM3OUEHWQP1ZJ85GIB2KLBD6 H4WRBBHA2XE1SQ21ykja/ /IRIA3ZQFXGV/QEKYGOX+XALVoolzqdwh76O2N1VP1D+TD3AMHSK7QIDAQAB
- AOGBAKH14BMITESQD4PYWODWOPECLJVKB7IKRVXVDKP1X IJNGKH h2HSYHQSLPSLPS GYJ1M/XKDNGINWALVD3BOKKGKG1BZN7PXT+HERQXAVWS6
- Lhakea3pWGPVXGLIWL 3H7QlyzlrlrlRBFRURN4Cyl4uyaakokKavzly04glle8yCGOC2DZL4EIL4L/+X/Gaq
- Deju M6usqowybewhyyhh /OTV1A3SQCCCE1F+
- qbAclCqeNiHajCcDmgYJ53LfIgyv0wCS54kCQAXaPkaHclRkQlAdqUV5IWYyJ25f oiq+Y8SgCCs73qixrU1YpJy9yKA/meG9smsl4Oh9IOIGI+zU ygh9YdSmEq0CQQC2
- 4G3IP2G3lNDRdZIm5NZ7PfnmyRabxk/UgVUWdk47IwTZHFkdhxKfC8QepUhBsAHL
- QjifGXY4eJKUBm3FpDGJAkAFwUxYssiJjvrHwnHFbg0 rFkvvY63OSm nRxiL4X6EY
- yI9lblCsyfpl25l7l5zmJrAHn45zAiOoBrWqpM5edu7c
- --- --END RSA 秘密鍵-----'
- $public_key = '-- ---BEGIN 公開鍵-----
- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3//sR2tXw0wrC2DySx8vNGlqt
- 3Y7ldU9+LBLI6e1KS5lfc5jlTGF7KBTSkCHBM3ouEHWq p1ZJ85iJe59aF5gIB2kl
- Bd6h4wrbbHA2XE1sq21ykja/ Gqx7/IRia3zQfxGv/qEkyGOx+XALVoOlZqDwh76o
- 2n1vP1D+tD3amHsK7QIDAQAB
- -----END PUBLIC KEY-- ---';
- //echo $private_key; $pi_key=openssl_pkey_get_private($private_key); //この関数は、秘密鍵が利用可能かどうかを判断するために使用でき、リソース ID を返すことができます リソース ID
- $pu_key= openssl_pkey_get_public($public_key);//この関数は、公開鍵が利用可能かどうかを判断するために使用できます
";
print_r($pu_key); echo "
";
echo "
";
$data='php ras 暗号化アルゴリズム';$encrypted = "";
echo "暗号化されたソース データ: "
";
echo "private key encrypt:n"; echo "
";
$encrypted =base64_encode($encrypted);//暗号化されたコンテンツ通常、ネットワーク間で URL を介して送信する場合は、base64 エンコードが URL に安全であるかどうかに注意してください。 echo 'After private key encrypted:'.$encrypted."n"; ;echo "
";
echo "public key decrypt:n"; echo "
" ;
openssl_public_decrypt(base64_decode($encrypted),$decrypted,$pu_key);// によって暗号化されたコンテンツ秘密鍵は公開鍵で復号できます
echo '公開鍵復号後:'.$decrypted."n"; echo "
";
echo "
";
echo " public key encrypt:n"; echo "
";
openssl_public_encrypt($data,$encrypted,$pu_key);// 公開鍵暗号化
$encrypted =base64_encode($encrypted);
echo $encrypted,"n "; echo "
";
";
openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key);//秘密キーの復号化
echo $decrypted,"n"; echo "";

ホット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ロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
