2013-08-31 1 views
1

일부 데이터를 해싱하여 전역 고유 ID를 생성해야합니다.해시에 대해 임의의 데이터보다 고유 한 데이터를 사용하고 있습니까?

한편으로는 타임 스탬프와 네트워크 주소의 조합을 사용할 수 있습니다. 이는 모든 컴퓨터가 동시에 하나의 ID 만 만들 수 있기 때문에 고유합니다. 그러나이 데이터는 오랫동안 해시가 필요하므로 충돌이 발생할 수 있습니다. (부수적으로, 타임 스탬프가 정확하지 않으면 난수를 던질 수도 있습니다.)

반면에 난 그냥 난수를 사용하고 해시 할 수 있습니다. 첫 번째 접근 방식과 똑같은 해시 충돌 가능성을 가져야하지 않습니까? 이 방법이 더 빠르고 구현하기가 훨씬 쉽기 때문에 흥미 롭습니다.

임의 데이터가 아닌 고유 데이터를 사용할 때 해시 충돌의 관점에서 차이가 있습니까? (그런데 표준에 설명 된대로 실제 GUID를 사용하지 않지만 내 코드 길이는 64 비트에 불과합니다. 그러나이 점이 질문에 영향을 미치지 않습니다.)

+0

가까운 사람이 투표 한 사람은 누구나 우려를 설명해 주시겠습니까? 나는 그 때 나의 질문을 향상시키고 싶다. – danijar

답변

1

왜 난수를 해시 할 필요가 있습니까? 해싱은 입력을 키 공간에 균일하게 매핑하도록 설계되었지만 PRNG는 이미 결과에 대한 일관된 매핑을 제공합니다. 당신이하는 일은 더 많은 일을 만들어내는 것뿐입니다.

+0

당신이 옳다. 답 이라기보다는 논평이다. – Boann

관련 문제