2017-01-03 16 views
0

수십억 개의 쿠키, 문자열과 같은 UUID가 주어지면이 샘플의 murmur3과 같은 32 비트 해시 함수의 충돌 비율을 테스트하는 가장 좋은 방법은 무엇입니까?어떻게 해시 함수 충돌 속도를 높일 수 있습니까?

우선 메모리에 보관할 수 없으며 100 % 정확한 임의의 문자열 생성기가 없기 때문에 수십억 개의 고유 한 문자열을 생성하기가 어렵습니다. 내가 생각할 수있는

유일한 방법은 다음과 같습니다

  1. 을 생성하고 약 사용. 가능한 중복을 제거하기 위해 bloomfilter 또는 cuckoo 필터와 같은 데이터 구조. 그런 다음 파일에 저장된 고유 UUID의 정확히 5B 개를 말합니다.
  2. 을 반복하여 해시하고 해시 코드로 1 단계를 반복하면서 충돌이 몇 건 있는지 계산합니다.

더 좋은 방법이 있습니까? 이것은 2)에서 해시 코드를 테스트하는 동안 특정 오 탐지율이 있다는 단점이 있습니다. 해시 코드는 파일에 기록되어야하며 가능한 오 탐지 (false positive hit)의 경우 수동으로 검사해야합니다.

답변

-2

영어 사전에서 임의로 단어를 선택하고 Google에 제출 한 다음 해시 기능을 테스트하기 위해 "임의"데이터로 반환되는 URL을 사용하십시오.

0

murmur_32 충돌 비율이 크기에서 매우 높은 ...

만 1 억 고유의 UUID는 ... 1.145577 % 충돌 속도를 정확하게 가지고

Scala snippet