ホームページ  >  記事  >  バックエンド開発  >  JSON文字列の非対称暗号化に関連する問題

JSON文字列の非対称暗号化に関連する問題

WBOY
WBOYオリジナル
2016-06-13 12:39:51954ブラウズ

JSON 文字列の非対称暗号化の問題

この投稿は、gwrc_s_d_n によって 2013-08-12 10:20:07 によって最終編集されました。 別の最近のプロジェクトでは、PHP で http リクエストを送信し、非対称暗号化を使用する必要があります。暗号化する必要がある部分は json 文字列です。
現在のテストの問題は、公開キーを直接使用して json 文字列を暗号化し、サーバーに送信すると、復号化が失敗することです (base64_encode を使用して暗号化して送信すると、クライアントは暗号化をテストし、通常どおり復号化します)。これをサーバーに送信すると、復号化が成功します (これは少し面倒です。json Base64 が一度必要で、暗号化後にもう一度 Base64 が必要です)。

そこでお聞きしたいのですが、json文字列は直接暗号化すべきではないでしょうか?それとも HTTP リクエストの送信に何か問題があるのでしょうか?リクエストは http_client を使用して行われ、fsockopen を直接使用することはできません。


$data['ユーザー名'] = 'test133ed';
$data['content'] =base64_encode(json_encode(array('brid' => '22228222883956', 'money' => 10000000, 'time' => time()))); //base64_encode ではありませんここで使用されます。渡されると復号化できません
openssl_sign($data['content'], $data['sign'], $privkey);

openssl_public_encrypt($data['sign'], $sign, $serverkey);
$data['sign'] =base64_encode($sign);

openssl_public_encrypt($data['content'], $data['content'], $serverkey);
$data['content'] = Base64_encode($data['content']);

$pageContents = HttpClient::quickPost('http://www.test.t:80/index.php/agent/store', $data);
$result =explode(',', $pageContents);
print_r($result);
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。