Android AES加密数据库条目大小

Android AES加密数据库条目大小,android,ios,database,encryption,aes,Android,Ios,Database,Encryption,Aes,我将在移动数据库上使用256bit AES加密数据 我的问题是,是否有一个特殊的因素来乘以数据库字段大小 例如: 假设我允许大小为10的str,当它被加密时,大小会增加大约x2-x3倍。 所以我应该在现场使用至少25号str 是否有一个特殊的数字,我可以乘以我的正常字段大小来找出最小的安全加密大小?好的说,纯文本的长度是p字节(比如,UTF-8编码的文本),B是底层密码的块大小,您可以使用CBC作为操作模式,并使用PKCS#7填充。在这种情况下,您将检索以下大小的密文(以字节为单位)(包括一个预

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

我的问题是,是否有一个特殊的因素来乘以数据库字段大小

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


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

好的说,纯文本的长度是
p
字节(比如,UTF-8编码的文本),
B
是底层密码的块大小,您可以使用CBC作为操作模式,并使用PKCS#7填充。在这种情况下,您将检索以下大小的密文(以字节为单位)(包括一个预挂起的IV):

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

H = C * 2
因此,对于小于value
7F
的单个UTF-8字符,您将得到64个十六进制字符

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


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

好吧,可以说纯文本的长度是
p
字节(比如,UTF-8编码的文本)
B
是基础密码的块大小,您可以使用CBC作为操作模式,并使用PKCS#7填充。在这种情况下,您将检索以下大小的密文(以字节为单位)(包括一个预挂起的IV):

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

H = C * 2
因此,对于小于value
7F
的单个UTF-8字符,您将得到64个十六进制字符

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


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

请提供有关加密模式和所用加密数据编码的更多信息。否则,不可能回答这个问题,而不是自己滚动,你可能想考虑Sql CiffER,它拥有AES-256加密,同时支持iOS和Android。据我所知,输入数据后,sqlcipher会加密?我对块模式和操作模式的答案都感兴趣。此外,纯文本和十六进制都将不胜感激。请提供有关加密模式和您正在使用的加密数据编码的更多信息。否则,不可能回答这个问题,而不是自己滚动,你可能想考虑Sql CiffER,它拥有AES-256加密,同时支持iOS和Android。据我所知,输入数据后,sqlcipher会加密?我对块模式和操作模式的答案都感兴趣。另外,请同时使用纯文本和十六进制。我的答案有什么遗漏吗?如果没有更多的信息,就不可能回答得更详细。我的答案有什么遗漏吗?如果没有更多的信息,就不可能回答得更详细。