Have you tried using UUID module? Its pretty handy and comes with base64 encoding function which gives extremely high quality randon strings
ref: http://stackoverflow.com/questions/621649/python-and-random-keys-of-21-char-max On Tue, Jun 7, 2011 at 3:48 PM, Robin Becker <ro...@reportlab.com> wrote: > A python web process is producing files that are given randomized names of > the form > > hhhhhh-YYYYMMDDhhmmss-rrrrrrrr.pdf > > where rrr.. is a 128bit random number (encoded as base62). The intent of > the random part is to prevent recipients of one file from being able to > guess the names of others. > > The process was originally a cgi script which meant each random number was > produced thusly > > > pid is process id, dur is 4 bytes from /dev/urandom. > > random.seed(long(time.time()*someprimeint)|(pid<<64)|(dur<<32)) > rrr = random.getrandbits(128) > > > is this algorithm safe? Is it safe if the process is switched to fastcgi > and the initialization is only carried out once and then say 50 rrr values > are generated. > -- > Robin Becker > > -- > http://mail.python.org/mailman/listinfo/python-list > -- Nitin Pawar
-- http://mail.python.org/mailman/listinfo/python-list