计算多部分数据的md5哈希值(多个字符串)

Fak*_*een 12 java algorithm hash

我正在尝试创建一个[单个] md5哈希的多个字符串[在Java中].那就是我想要的

md5(string1, string2, string3, ..., stringN)
Run Code Online (Sandbox Code Playgroud)

目前我正在尝试将所有字符串与一些很少使用的分隔符(如#)连接起来.那是

md5(string1#string2#...#stringN)
Run Code Online (Sandbox Code Playgroud)

这看起来很hacky,我担心一些奇怪的字符串实际上有分隔符作为它的一部分.最好的方法是什么?

Seb*_*olm 10

这可能会更好:

md5(md5(string1) + md5(string2) + ... + md5(stringN))
Run Code Online (Sandbox Code Playgroud)

它消除了分隔符问题,但很难说它有多好.


kro*_*old 4

分隔符是否是字符串的一部分并不重要。您可能甚至不需要分隔符,因为您不会将连接的字符串分解为多个部分

  • 如果字符串是“ab”、“c”和“a”“bc”怎么办?如果我不使用分隔符,它们最终会映射到相同的哈希码。我担心分隔符是“ab#”、“c”和“ab”、“#c”,它们将具有相同的哈希码。[请注意,我使用 md5 几乎相等,因为碰撞非常罕见 - 我将它用作 Hadoop 减速器的密钥,如果我可以帮助的话,我不想再次进行相等比较] (4认同)