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

Reply via email to