gpt4 book ai didi

java - 如何为android中的字符串输入生成唯一的哈希码...?

转载 作者:IT老高 更新时间:2023-10-28 20:34:13 24 4
gpt4 key购买 nike

我想为 android 中的字符串生成一个唯一的哈希码。是否有任何预定义的库,或者我们必须手动生成。请任何知道的人提供链接或代码。

最佳答案

这取决于你的意思:

  • 如前所述,String.hashCode() 为您提供 32 位哈希码。

  • 如果您想要(比如说)一个 64 位哈希码,您可以自己轻松实现。

  • 如果您想要字符串的加密哈希,Java 加密库包括 MD5、SHA-1 等的实现。您通常需要将字符串转换为字节数组,然后将其提供给哈希生成器/摘要生成器。例如,请参阅@Bryan Kemp 的回答。

  • 如果你想要一个保证唯一哈希码,那你就倒霉了。哈希和哈希码是非唯一的。

长度为 N 的 Java 字符串具有 65536 ^ N 个可能的状态,并且需要一个具有 16 * N 位的整数来表示所有可能的值。如果你写了一个哈希函数,它产生的整数范围更小(例如,小于 16 * N 位),你最终会发现多个 String 哈希到同一个整数的情况;即哈希码不能是唯一的。这称为 Pigeonhole Principle ,并且有一个直接的数学证明。 (你不能打数学赢!)

但是,如果“可能是唯一的”具有非常小的非唯一性的可能性是可以接受的,那么加密哈希是一个很好的答案。数学将告诉您哈希必须有多大(即多少位)才能实现给定(足够低)的非唯一性概率。

关于java - 如何为android中的字符串输入生成唯一的哈希码...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6120657/

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