2013-02-13 3 views
2

GUID's (128 비트) 또는 SHA1 해시가 GUID's (160 비트) 사이 일 때 충돌 가능성이 더 있습니까? 제 생각에는 GUID (32 비트가 더 적더라도) 특수한 메커니즘이 있기 때문에 (거의 보장이 없기 때문에) 고유 한 (예 : 타임 스탬프)GUID 또는 GUID의 SHA1 해시간에 충돌이 발생할 가능성이 더 있습니까?

참고 : 나는 이미 GUID이 다른 GUID과의 충돌 가능성이 거의 없다는 것을 알고 있습니다. 더 이상의 논쟁은 없습니다. 사소한

+0

해시 충돌은 피할 수 없습니다. 당신이 할 수있는 것은 충돌이 당신의 사용 시나리오에서 발생하지 않을만큼 충분히 큰 키 공간을 가진 해시를 사용하려고 시도하는 것입니다. –

답변

8

: 경우이 GUID를 (즉 각 GUID 충돌에 대한 것입니다) 동일은, 자신의 해시 우리가 "SHA1 충돌"이 아닌 "충돌"가 (도 동일하지만, 그것은 나쁜 우리의 신청을 위해 충분히). 또한 해시 충돌이 발생할 가능성이 있습니다 (여러 GUID에 대해 동일한 SHA1).

GUID를 해시하는 경우에만 충돌을 추가 할 수 있습니다.

+0

동의합니다. GUID가 만들어지는 방법이나 SHA1 해시의 비트 수와는 관계가 없습니다. 마지막 문장에 모두 나와 있습니다. – hatchet

+0

SHA1 충돌을 생성하는 두 개의 128 비트 GUID가 0이 아닌 확률이 있는지 확실히 알고 있습니까? 그렇다면 그 확률이 ​​무엇인지 아십니까? – mbeckish

+0

@mbeckish - 생일 문제에 따라, 모든 고유 GUID를 256 비트의 해시 공간으로 해싱하는 충돌이 약 25 % 이상 발생합니다. 겨우 160 비트로 훨씬 더 높은 가능성이 있습니다. – hatchet