gpt4 book ai didi

java - java中唯一字符串的唯一十六进制

转载 作者:行者123 更新时间:2023-12-01 11:26:51 25 4
gpt4 key购买 nike

我想为每个唯一的字符串获取唯一的十六进制。截至目前,我正在使用 Message Digest 类,但对于两个唯一的字符串,计算出的十六进制可能相同(非常少但仍然)。那么有没有其他方法可以做到这一点,以便我拥有唯一字符串的唯一十六进制。

提前致谢。

最佳答案

(假设您指的是 hash,而不是 hex,因为您提到了 MessageDigest )。

每个唯一的字符串都不能有唯一的哈希码。这样想:A hash function将字符串(或任何其他对象)映射为整数。由于每个整数都可以表示为一个字符串,例如“123”至少有与不同整数一样多的字符串 - 然后还有更多,例如所有不是数字的东西,例如“你好”。因此,由于字符串的数量多于整数,因此不可能在所有情况下都为唯一字符串生成唯一的哈希码。

话虽如此,对于“日常哈希”(对于哈希表等),String.hashCode 提供的哈希函数已经是尽善尽美了。对于 cryptographic hashingMessageDigest 似乎是要走的路。不过,根据您当前使用的算法,您也许可以升级到更强大的算法,例如sha-512 而不是 sha-256

关于java - java中唯一字符串的唯一十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30755184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com