PHP で API を実装するときにデータの暗号化と復号化を処理する方法
インターネットの継続的な発展に伴い、API (アプリケーション プログラミング インターフェイス) の適用範囲はますます広範になり、さまざまなシステム間のデータのやり取りがますます頻繁になってきています。機密データを送信するには、データの暗号化と復号化が不可欠な手順です。この記事では、PHP ベースの API を実装する際のデータの暗号化と復号化の処理方法を紹介します。
1. データ暗号化が必要な理由
データ暗号化とは、元の平文を特定のアルゴリズムに従って暗号文に変換し、対応する鍵を取得していない人には解読できないようにすることを指します。データの機密性。 API 開発において、データ暗号化が必要となる主な理由は次の 2 点です。
- データ セキュリティ
API がサードパーティに公開される場合、送信による暗号化が行われます。プライベートな通信環境で実行されることを保証するものではないため、送信プロセス中にデータが盗まれたり改ざんされたりすることを防ぐために、暗号化によってデータのセキュリティと信頼性を確保できます。
- 合法性検証
データ暗号化により、本人確認や署名などを通じてデータ送信の合法性を保証できます。 API リクエストの送信プロセス中、リクエスト パラメータは不可逆アルゴリズムで暗号化され、リクエストの正当性が保証され、リクエスト データの不正な改ざんや偽造が防止されます。
2. PHP はデータ暗号化を実装します
- 対称暗号化アルゴリズム
対称暗号化アルゴリズムとは、暗号化と復号化に使用されるキーが同じであることを意味します。キーをパラメータとして渡すだけで、暗号化と復号化の操作が完了します。 API 開発で一般的に使用される対称暗号化アルゴリズムには、DES、3DES、AES などが含まれます。
AES 暗号化アルゴリズムを例に挙げると、PHP は、対称暗号化操作を実装するための openssl_encrypt() や openssl_decrypt() などの関数を提供します。使用方法は以下の通りです。
//AES加密 function aesEncrypt($data, $key) { $iv_len = openssl_cipher_iv_length('AES-128-CBC'); $iv = openssl_random_pseudo_bytes($iv_len); $encrypted = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv); $result = base64_encode($iv . $encrypted); return $result; } //AES解密 function aesDecrypt($data, $key) { $data = base64_decode($data); $iv_len = openssl_cipher_iv_length('AES-128-CBC'); $iv = substr($data, 0, $iv_len); $encrypted = substr($data, $iv_len); $decrypted = openssl_decrypt($encrypted, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv); return $decrypted; }
このうち、$dataは暗号化するデータ、$keyは鍵です。暗号化プロセス中に、openssl_cipher_iv_length() を呼び出して暗号化アルゴリズムに必要な IV ベクトルの長さを取得し、openssl_random_pseudo_bytes() を呼び出してランダムな IV ベクトルを生成してから、openssl_encrypt() 関数を呼び出して暗号化操作を実行します。復号化プロセスでは、まず、base64_decode() 関数によって暗号文がバイナリ データに復元され、次に IV ベクトルと暗号化データがそれぞれ抽出され、openssl_decrypt() 関数が呼び出されて復号化操作が実行されます。
- #非対称暗号化アルゴリズム
//RSA加密 function rsaEncrypt($data,$public_key) { $encrypted = ''; openssl_public_encrypt($data,$encrypted,$public_key,OPENSSL_PKCS1_PADDING); $encrypted = base64_encode($encrypted); return $encrypted; } //RSA解密 function rsaDecrypt($data,$private_key) { $decrypted = ''; openssl_private_decrypt(base64_decode($data),$decrypted,$private_key,OPENSSL_PKCS1_PADDING); return $decrypted; }
//HMAC签名 function hmacSign($data, $secret) { $signed_data = hash_hmac('sha256', $data, $secret, false); return $signed_data; }
//数据加密 $data = [ 'user_id' => 12345, 'user_name' => 'test', 'timestamp' => time(), ]; $json_data = json_encode($data); $encrypted_data = aesEncrypt($json_data, $encrypt_key); //数据签名 $signature_data = $encrypted_data . $secret_key; $signature = hmacSign($signature_data, $hmac_key); //API请求构造 $params = [ 'data' => $encrypted_data, 'signature'=> $signature, ]; $request_url = 'http://api.example.com' . '?'. http_build_query($params); //API响应解析 $response_data = file_get_contents($request_url); $response_data = json_decode($response_data, true); //数据解密 $encrypted_data = $response_data['data']; $signature_data = $encrypted_data . $secret_key; $signature = $response_data['signature']; if(hmacSign($signature_data, $hmac_key) === $signature) { $json_data = aesDecrypt($encrypted_data, $encrypt_key); $response = json_decode($json_data, true); //TODO:处理API响应数据 } else { //TODO:处理签名不合法的情况 }
以上がPHP で API を実装するときにデータの暗号化と復号化を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック









HTTP ステータス コード 460 の復号化: このエラーはなぜ発生しますか?はじめに: 日常のネットワーク使用では、HTTP ステータス コードを含むさまざまなエラー プロンプトに遭遇することがよくあります。これらのステータス コードは、リクエストの処理を示すために HTTP プロトコルによって定義されたメカニズムです。これらのステータス コードの中には、比較的まれなエラー コード 460 があります。この記事では、このエラー コードを詳しく説明し、このエラーが発生する理由を説明します。 HTTP ステータス コード 460 の定義: まず、HTTP ステータス コードの基本を理解する必要があります。

Apple の携帯電話では、ユーザーは自分のニーズに応じてフォト アルバムを暗号化できます。設定方法がわからないユーザーもいます。暗号化が必要な写真をメモに追加し、メモをロックすることができます。次に、編集者がユーザー向けにモバイル フォト アルバムの暗号化を設定する方法を紹介します。興味のあるユーザーは、ぜひご覧ください。 Apple 携帯電話チュートリアル iPhone フォト アルバム暗号化の設定方法 A: 暗号化する必要がある写真をメモに追加した後、メモをロックして詳細を説明します。 1. フォト アルバムに入り、暗号化する必要がある写真を選択します。暗号化されたものを選択し、下の[追加]をクリックします。 2. [ノートに追加]を選択します。 3. メモを入力し、作成したメモを見つけて入力し、右上隅の [送信] アイコンをクリックします。 4. 下の[デバイスをロック]をクリックします

フォルダー暗号化は、フォルダーの内容を暗号化して、復号化パスワードを持っている人だけがファイルにアクセスできるようにする一般的なデータ保護方法です。フォルダーを暗号化する場合、ファイルを圧縮せずにパスワードを設定する一般的な方法がいくつかあります。まず、オペレーティング システムに付属の暗号化機能を使用して、フォルダーのパスワードを設定します。 Windowsユーザーの場合は、次の手順で設定できます。 暗号化するフォルダーを選択し、フォルダーを右クリックし、「プロパティ」を選択します。

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

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

PyCharm インタプリタによって追加されたトリックを解読する PyCharm は、多くの Python 開発者に好まれる統合開発環境 (IDE) であり、開発効率を向上させるための強力な機能を多数提供します。中でもインタプリタの設定は PyCharm の重要な部分であり、インタプリタを正しく設定することで、開発者はコードをスムーズに実行し、プログラムをデバッグすることができます。この記事では、PyCharm インタープリターの追加機能を解読するためのいくつかのテクニックを紹介し、それを特定のコード例と組み合わせて、インタープリターを正しく構成する方法を示します。 Py でのインタープリターの追加と選択

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

原著者: Meteor、ChainCatcher 原編集者: Marco、ChainCatcher 最近、フルチェーン相互運用性プロトコルである Analog が 1,600 万米ドルの資金調達を明らかにし、注目を集めています 投資機関には TribeCapital、NGCVentures、Wintermute、GSR、NEAR、OrangeDAO が含まれます、マイク・ノボグラッツ氏のオルタナティブ資産管理会社サマラ・アセット・グループ、バラジ・スリニバサンなど。 2023 年末、Analog は業界で興奮を引き起こし、X プラットフォームでのオープン テストネット登録イベントに関する情報をリリースしました。
