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,
        ));

为什么我会收到这条消息?消息不是那么长。

我看过以下帖子,但我不明白如何在 javascript 中使用 AES 而不会破坏 AES 密码。

RSA 加密问题 [有效负载数据的大小]

4

1 回答 1

5

不生成对称密钥并加密完整消息?使用更大的钥匙。1024 位密钥只能加密 117 个字节而无需某种填充,但 2048 位密钥最多可以处理 245 个字节,而 4096 位密钥最多可以处理 501 个字节。这可以使您的脚本处理更大的重音名称(非 ASCII 字符每个字符使用两个或更多字节)。

我最终遇到了类似的问题,但是 Thoman Pornin 对RSA Encryption Problem [Size of payload data] 的回答很好地解释了这种限制的原因。

在阅读(相同的)Thomas Pornin 的回答后,也放弃了尝试将消息拆分为几个加密的块,如果有效负载是,RSA 填充是否必须是不可预测的?

于 2014-01-24T13:05:18.023 回答