我正在使用 rsa 密钥加密我将发送到我的服务器的长字符串(将使用服务器的公钥和我的私钥对其进行加密)但是它会抛出一个异常 javax.crypto.IllegalBlockSizeException: Data must not be longer than 256 bytes
我觉得我还没有理解到目前为止,rsa 的工作正常(使用内置库是造成这种情况的原因)。
有人可以解释为什么抛出这个异常吗?发送加密的长字符串是完全不可能的吗?
原文由 Ashwin 发布,翻译遵循 CC BY-SA 4.0 许可协议
所以基本上你将密钥长度除以 8 -11(如果你有填充)。例如,如果你有一个 2048 位的密钥,你可以加密 2048⁄8 = 256 字节(- 11 字节,如果你有填充)。因此,要么使用更大的密钥,要么使用对称密钥加密数据,然后使用 rsa 加密该密钥(这是推荐的方法)。
这将要求您: