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