我在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。
答案 0 :(得分:2)
不生成对称密钥并加密完整邮件?使用更大的钥匙。 1024位密钥只能在没有某种填充的情况下加密117个字节,但是2048位密钥可以处理多达245个字节,而4096位密钥最多可以处理501个字节。这可能会使您的脚本处理更大和重音的名称(非ASCII字符每个字符使用两个或更多字节)。
我最终遇到了类似的问题,但Thoman Pornin对RSA Encryption Problem [Size of payload data]的回答很好地解释了这种限制的原因。
也放弃了尝试在阅读之后将消息分成几个加密块(同样)Thomas Pornin回答Does RSA padding have to be unpredictable if the payload is?