Se stai usando Python, perché ti interessa l'implementazione specifica? Basta usare random
module e lascia che se ne occupi lui.
Oltre a ciò, (se non puoi fare affidamento sullo stato del software) os.urandom
fornisce valori casuali basati sul sistema operativo:
Su un sistema simile a UNIX questo interrogherà /dev/urandom, e su Windows userà CryptGenRandom.
(Notare che random.SystemRandom
fornisce una bella interfaccia per questo).
Se lo sei davvero serio sul fatto che sia crittograficamente casuale, potresti voler dare un'occhiata a PyCrypto.
Potresti invece chiamare random.SystemRandom. Questo utilizzerà CryptGenRandom su Windows e /dev/urandom su Linux.
Altrimenti, c'è sempre /dev/random?
di Cygwin