我将使用一个算法对从XML文件检索到的变长但非常长的字符串字段进行编码,然后将编码数据持久化到数据库中。
稍后,当我收到第二个文件时,我需要从数据库中获取编码数据(之前存储的),然后解码它并验证新数据以查找重复项。
我尝试了org.apache.commons.codec.binary.Base64
类,它有两种方法:
encodeBase64(Byte[] barray)
decodeBase64(String str)
这很完美地解决了我的问题。但它将55个字符的字符串转换为只有6个字符的字符串。
因此,我想知道是否存在这样一种情况,即这些算法将两个非常大且仅有1个字符不匹配(例如)的字符串编码为相同的编码字节数组。
我不太了解Base64
类,但如果有人能帮助我,那将非常有帮助。
如果您可以建议任何其他算法,使大字符串缩短为固定长度并解决我的问题,我将很高兴使用它。
提前感谢。
Base64
类将55个字符的输入编码为6个字符的输出。如果该类确实在进行base64编码,那么它意味着它已经对4个字符的输入进行了编码(末尾没有==
填充)。如果您发布了使用该类的简短示例,可能会有所帮助,因为我怀疑它可能没有做您认为它正在做的事情(您是否尝试过解码6个字符的输出?)。 - Andrzej Doyle