如前所述,您的问题只有一个答案,那就是“否”。RSA加密是一种对消息进行加密的算法,该消息最多可以加密给定大小,具体取决于密钥大小。带有1024位RSA密钥,并以RSA作为标准描述,最大大小为117字节,仅此而已。仅凭RSA无法加密更大的消息,这是确定的,数学上的确定性。
如果您确实需要处理更长的消息,则 必须 添加其他内容。在这种情况下,请, 请
,不要试图做你自己设计的任何幻想一些哦,所以,聪明的分割数据成小块等。那条路导致厄运。您可能会产生一些 看起来
可以编译和运行的东西,但是在某种程度上它总是弱小的,就像密码学上几乎所有其他自制的变体一样。这是因为无法测试安全性:这不是“有效”或“无效”的情况。
因此,非对称加密的通行之路是:
- 您选择一个适当长度的随机字节序列,例如128位(即16个字节)。让我们把它 ķ 。
- 您使用RSA公钥加密 K ;这会产生 ê 。
- 您可以使用对称加密算法()用 K 加密邮件
"AES/CBC/PKCS5Padding"
。由于这是单发键,因此可以使用全零IV。这就产生了一堆的字节,我们称之为 ˚F 。 - 然后,加密的消息是 E 和 F 的串联。
解密以相反的顺序进行:使用RSA私钥从 E中 恢复 K ,然后使用 K 将 F 解密为原始消息。密钥 K
永远不会存储在任何地方,并且每次都会生成一个 新的密钥K
(即使两次加密相同的消息也是如此)。这很重要,除非您了解自己在做什么(如果您已经在做,那么您已经知道了),请不要更改它。 __
给定您对问题的陈述,您除了“只是RSA”之外 还 必须做其他事情。我上面描述的过程是关于安全性可以想到的最佳“其他”信息。
将一些加密元素组合到这样的协议中是一个充满陷阱的过程,因此,使用已经定义的格式和支持库可能会更好。不对称加密的两种常见格式是CMS和OpenPGP。Bouncy
Castle是同时支持这两种方法并享有良好声誉的图书馆。



