我想加密数据库表中特定列中的数据。但是,使用 AES/GCM 使用 key 进行标准加密时,加密后的密文长度比原始文本长得多。
由于每个数据库列都有特定的长度,因此我不希望加密文本比原始文本长。我在网上查找了 Java 中的 FormatPreservingEncryption 示例,但没有找到。看来这个技术用得不多。
我已经尝试过 https://github.com/idealista/format-preserving-encryption-java 中的代码
对于大文本,它无法正确运行。例如,对于长度超过 228 个字符的文本,它会失败。
任何人都可以帮忙提供 Java 中这种技术的源代码实现,或者指出一些替代技术来实现我想要的。我现在使用 Java 中的标准 Cipher 类来进行编码。
非常感谢任何帮助。谢谢
最佳答案
下面的链接中有一个示例,说明如何使用 CipherStream 加密与输入文本长度相同的文本。 http://www.java2s.com/Code/Java/Security/BasicIOexamplewithCTRusingAES.htm
也许它会对某人有所帮助
关于java - Java 中的加密技术保留输入文本的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57255875/