4

JavaScriptでJSBNを使用して、Facebookデータの一連の文字列(メッセージ)を暗号化し、サーバー(PHP)に安全に送信してそこで復号化しています。

一部のユーザーは、次のようなもので「メッセージが長すぎます」を経験しています

"&fbemail='+fbemail+'&gender='+fbgender+'&birthday='+fbbirthday+'&name='+fbname+'&surname='+fbsurname+'&fbuser='+fbuserid"

私は秘密鍵を生成しました:

$privateKey = openssl_pkey_new(array(
          'private_key_bits' => 1024,
          'private_key_type' => OPENSSL_KEYTYPE_RSA,
        ));

なぜそのメッセージが表示されるのですか? メッセージはそれほど長くありません。

次の投稿を見ましたが、AES パスフレーズを侵害せずに JavaScript で AES を使用する方法がわかりません。

RSA暗号問題 [ペイロードデータのサイズ]

4

1 に答える 1

5

対称鍵を生成してメッセージ全体を暗号化しないのですか? より大きなキーを使用してください。1024 ビット キーは、何らかのパディングなしで 117 バイトしか暗号化できませんが、2048 ビット キーは最大 245 バイト、4096 ビット キーは最大 501 バイトを処理できます。これにより、スクリプトがより大きくアクセント付きの名前を処理する可能性があります (非 ASCII 文字は 1 文字あたり 2 バイト以上を使用します)。

同様の問題が発生しましたが、Thoman Porninの RSA 暗号化問題 [ペイロード データのサイズ]に対する回答は、この制限の理由を説明するのに最適でした。

また、(同じ) を読んだ後、メッセージをいくつかの暗号化されたチャンクに分割しようとすることをあきらめました

于 2014-01-24T13:05:18.023 に答える