Ben Finney <[EMAIL PROTECTED]> writes: > > http://docs.python.org/lib/module-uuid.html > I second this recommendation. If you want arbitrary unique IDs that > are not a function of the data they identify, the simplest solution is > a monotonically-increasing serial number. If you want more than that, > you might as well go straight to the standard UUIDs.
The standard UUID's as described in that url don't make any serious attempt to be unguessable. It's better to use a string from os.urandom(). To Stephen: double oops, I was thinking of hex digits rather than bytes when I suggested reading 32 (length of an md5 hash) or 40 (length of an sha1 hash) from os.urandom. That should have said 16 or 20 bytes. If k is the number of unique id's you'll actually use, and N is the number of possible random uid's (so for 16 bytes, N=2**128 since 16 bytes is 128 bits), the probability of a collision occuring is approximately exp(-k**2 / (2*N)), assuming k is small compared with sqrt(N). -- http://mail.python.org/mailman/listinfo/python-list