Gervasio Bernal <[EMAIL PROTECTED]> writes: > How can I generate a random string containing digits, symbols and > letters? I will use this random string for the key of a cryptographic > algorithm.
Generally if this is a string that some human user has to type in, it's preferable to select some words randomly from a dictionary rather than use an easily-garbled string of symbols. If the string will be handled entirely by computers, just use a random string of bytes (like os.urandom(20)) without worrying about whether they're printable characters. If you really want a random-looking string of specific characters, a simple way is: usable_characters = string.letters + string.digits ... # generate one character from the set (repeat as needed) a,b = map(ord, os.urandom(2)) c = (a*256 + b) % len(usable_characters) Notice that the characters will have slightly unequal probability (unless the usable character set's size is a power of 2), but the effect on the output entry is insignificant. -- http://mail.python.org/mailman/listinfo/python-list