in reply to Re: How safe is truncating an MD5 digest string?
in thread How safe is truncating an MD5 digest string?

Perhaps I am mistaken, but I believe some care should be taken in calculating the collision math when truncating the hash.

See http://en.wikipedia.org/wiki/Uuid#Random_UUID_probability_of_duplicates

If you use only 64 bits, the probability of a collision is not 1 in 2**64. Rather, it is dependent upon both the number of bits retained and the number of generated keys. For 1 million iterations, the probability of a collision is:

P(n) = 1 - e ** -(((10**6)**2)/(2*2**64)) = 2.7 E -8

which is much higher than 1/2**64 = 5.4 E -20

This may not seem significant, but what happens if you select only 36 bits from the hash (9 characters)? You are nearly guaranteed a collision in 1 million iterations:

P(n) = 1 - e ** -(((10**6)**2)/(2*2**36)) = 0.999

  • Comment on Re^2: How safe is truncating an MD5 digest string?