1

我将在移动数据库上使用 256 位 AES 加密数据。

我的问题是,是否有一个特殊的因素可以增加数据库字段的大小?

示例:假设我允许大小为 10 的 str,当其加密时,大小增加了大约 x2-x3 倍。所以我应该在现场至少使用 25 号 str 。

是否有一个特殊的数字可以乘以我的正常字段大小来找出最小安全加密大小?

4

1 回答 1

1

好吧,纯文本的长度P以字节为单位(例如,UTF-8 编码的文本)并且B是底层密码的块大小,您将使用 CBC 作为操作模式和 PKCS#7 填充。在这种情况下,您将以字节为单位检索以下大小的密文(包括预先添加的 IV):

C = B + P + B - P % B

现在要将这些字节转换为十六进制字符,您只需乘以 2:

H = C * 2

因此,对于低于 value 的单个 UTF-8 字符,7F您将获得 64 个十六进制字符。

这可能不是您所期望的。您可以切换到不需要填充的计数器模式加密。您可以使用其他一些唯一数字来导出 IV。您可以将密文存储为二进制或 base 64(每 3 个字节只需要一个额外的字符值)。总而言之,这里有太多的选择要讨论。如果您需要考虑这么多,最好继续构建加密功能。

如果你走得很远,你应该研究格式保留加密,并使用大小不精确在位边界上的字母。

于 2013-08-11T15:02:52.953 回答