On 2010-02-23 13:59 PM, mk wrote:
On Feb 23, 7:19 pm, Paul Rubin<no.em...@nospam.invalid>  wrote:

The code is pretty ugly.  The main problem is you end up with a password
that's usually 5 letters but sometimes just 4 or fewer.

Well I didn't write the whole thing here, in actual use I'd write a
loop repeating the function until I have enough characters and then
I'd select a substring of specified length.

Anything else in the code that is ugly and I should correct?

I would recommend using random.SystemRandom.choice() on a sequence of acceptable characters. E.g. (untested)

import random
import string


characters = string.letters + string.digits + '~...@#$%^&*()-+=,;./\?><|'
# ... or whatever.

def gen_rand_string(length):
    prng = random.SystemRandom()
    chars = []
    for i in range(length):
        chars.append(prng.choice(characters))
    return ''.join(chars)

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to