按块加密文件
Encrypt file by blocks
我有一个大文件,正在尝试使用 RSA 加密。是的,我知道在这种情况下通常使用混合加密,但我想使用标准 public 密钥加密来查看效率差异。
为了加密这么大的文件,我明白我必须逐块加密。收到后,一个错误指出我的字节数组太大而无法使用 RSA-2048 加密,我将字节数组减少到 245 字节。 246 字节的字节数组工作正常,但它也只适用于 246 字节,这是我的问题。我需要用 RSA-2048 加密整个文件。
在研究了 RSA-2048 密码学以更好地理解和逐块加密之后,我仍然对使用 RSA-2048 实现逐块加密感到困惑。这是我第一次用任何语言实现密码学。下面是我使用 RSA public 密钥加密大文件的代码。
如有任何关于如何使用 RSA 逐块加密整个大文件的建议,我们将不胜感激。
首先,不管你怎么说,你永远不应该使用 RSA 作为分组密码。如果您在生产代码中这样做并且有人发现了,您很可能会被解雇。
但是...
- 您应该从
FileInputStream
中读取最多 ~246 个字节。
- 使用 RSA 加密结果。
- 将加密块写入
FileOutputStream
。
您的代码没有执行此操作,因为:
你马上return第一块密文:
inputfile= cipher.doFinal(block);
return inputfile;
- 你不对结果做任何事情。
我有一个大文件,正在尝试使用 RSA 加密。是的,我知道在这种情况下通常使用混合加密,但我想使用标准 public 密钥加密来查看效率差异。
为了加密这么大的文件,我明白我必须逐块加密。收到后,一个错误指出我的字节数组太大而无法使用 RSA-2048 加密,我将字节数组减少到 245 字节。 246 字节的字节数组工作正常,但它也只适用于 246 字节,这是我的问题。我需要用 RSA-2048 加密整个文件。
在研究了 RSA-2048 密码学以更好地理解和逐块加密之后,我仍然对使用 RSA-2048 实现逐块加密感到困惑。这是我第一次用任何语言实现密码学。下面是我使用 RSA public 密钥加密大文件的代码。
如有任何关于如何使用 RSA 逐块加密整个大文件的建议,我们将不胜感激。
首先,不管你怎么说,你永远不应该使用 RSA 作为分组密码。如果您在生产代码中这样做并且有人发现了,您很可能会被解雇。
但是...
- 您应该从
FileInputStream
中读取最多 ~246 个字节。 - 使用 RSA 加密结果。
- 将加密块写入
FileOutputStream
。
您的代码没有执行此操作,因为:
你马上return第一块密文:
inputfile= cipher.doFinal(block); return inputfile;
- 你不对结果做任何事情。