我想对数据库表中特定列中的数据进行加密。但是,对于使用AES/GCM的秘密密钥的标准加密,加密后的密文的长度比原始文本要长得多。
因为每个数据库列都有一个特定的长度,所以我不希望加密文本比原始文本更长。我在网上找了所有的Java语言的FormatPreservingEncryption示例,但是没有找到。似乎,这项技术并没有被广泛使用。
我已经尝试过https://github.com/idealista/format-preserving-encryption-java中的代码了
它不能正确运行大文本。例如,对于长度超过228个字符的文本,它将失败。
有没有人可以帮我在java中提供这样一种技术的源代码实现,或者指出一些替代技术来实现我想要的。我现在使用Java中的标准Cipher类进行编码。
任何帮助都非常感谢。谢谢
发布于 2019-08-02 15:11:11
在下面的链接中,有一个如何使用CipherStream加密与输入文本长度相同的文本的示例。http://www.java2s.com/Code/Java/Security/BasicIOexamplewithCTRusingAES.htm
也许它会帮助某些人
https://stackoverflow.com/questions/57255875
复制相似问题