2011-07-31 3 views
1

빠른 해시 알고리즘을 찾고 있습니다. 사실, 열쇠가 URL 인 해시 테이블을 작성하려고합니다. MD5를 사용하여 URL의 해시를 처리했지만 너무 느립니다 (Java의 내장 함수를 사용했습니다). 아무도 어떤 빠른 해시 알고리즘에 대해 알려줌으로써 나를 도울 수 있습니까?빠른 해시 알고리즘 검색

+0

해결하려는 문제는 무엇입니까? 왜 그렇게 느린가요? 얼마나 많은 해시를 생성해야하므로 더 빠른 솔루션이 필요합니까? 우리가 더 잘 당신을 도울 수 있도록 더 많은 코멘트를 만들어주십시오. –

+0

간단한 체크섬이 빠르며 속도가 중요한 문제인 경우 URL의 접두어 (또는 접미사)를 기반으로 할 수 있습니다. – Patrick87

+0

원래의 질문에서 말했듯이 정확성을 원한다면 표준 해싱 기능만으로는 문제를 해결할 수 없습니다. 암호화 해시를 사용하거나 원본 텍스트를 저장해야합니다 (예 : Trie 사용). –

답변

6

자바의 String 클래스는 이미 .hashCode()을 구현합니다. 이것은 Java에서 가장 빠른 32 비트 해시가 될 가능성이 높습니다. 코어에서 많이 최적화되었습니다. 이것은 java.util.HashMap과 같이 기본 제공 모음을 사용할 때 사용되는 해시이기도합니다.

+1

.hashcode()는 32 비트 해시 (int) –

+0

을 제공하지만 .hashCode()는 고유 할 필요는 없으며이를 사용할 때 고려해야합니다! – Urobe

3

구글은 매우 빠른 해싱 너 한테을-오픈 소스 화 : 그것은 비 암호 해시에 비해 느릴 수 있도록 CityHash

0

MD5는 암호화 해시입니다. Yann이 말했듯이 Java 해시는 64 비트 해시를 원할 경우 가장 빠를 것입니다.

그런 경우 적합하지 않은 경우 다른 크기가 아닌 다른 빠른 암호화 해시가 있습니다 (예 : Fowler–Noll–Vo).