3

在像 RSA 这样的加密方法中,我们对一个表示我们消息的整数进行操作。我一直在尝试将字符串转换为字节数组并一次处理一个字符,但这似乎太慢了,并且 RSA 算法旨在处理整个消息。

我们如何将字符串转换为可以应用我们的密码算法的表示(整数、大整数等)?

4

2 回答 2

6

在典型用法中,您实际上并没有使用 RSA 加密整个消息。相反,您使用 RSA 加密对称分组密码(如 AES)的加密密钥,然后使用该分组密码加密您的数据流。

不要试图自己做这件事! 您必须非常小心如何进行转换,包括设置安全填充方案以及在安全模式下正确使用分组密码。您可能希望使用语言提供的加密库或 OpenSSL 等标准库。

希望这可以帮助!

于 2013-10-03T01:26:21.817 回答
0

想想整数和字符串在内存中是如何表示的。一个 32 位整数占用 4 个 8 位字节,一个 64 位整数占用 8 个字节。字符串也存储为字节,在 ASCII 的情况下,每个字符由一个字节表示。(UTF-8 和 UTF-16 是可变长度编码,但它仍然是字节。)

没有什么要转换的,因为所有数据类型在内部都由字节表示。

没有理由不能将其扩展到 2048 位整数以与 RSA 一起使用。

于 2013-10-04T10:47:43.410 回答