[英]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.