[英]Generate Bigger HashCode JAVA
由于已知事实,Java会生成大约40亿个唯一的Hashcode。
我正在使用某些字符串的哈希码(例如Fname + Lname + DOB + DATE),它成为数据库的主键
在@PrePersist中,我使用Hashcode进行了设置,这有助于我为新用户生成Hashcode。 (必须是唯一的)。
现在我已经没有代码了。 对我来说,可能的替代方法是使用SHA-2,MD5等。
如何增加哈希码的大小,又如何避免发生较大的冲突。
我认为您对使用int Object.hashCode()感到困惑,您可以重写它并返回一个int并使用安全的哈希函数。 那是两件事。 Object.hashCode不能返回唯一的整数(返回1是有效的实现)。 因此,使用String.hashCode()进行对象标识并不是一个好主意,因为它可能会发生冲突。 它旨在与HashTables一起使用; 这意味着它针对性能进行了优化,而不是为了避免冲突。
如果您想要某种内容哈希,则确实可以使用sha1,sha2,sha3或md5。 如果不是,请使用SecureRandom或UUID随机生成一些内容。 所有这些都极有可能使您发生碰撞(当然不是完全为0)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.