From: MithrandirAgain Date: Sat, 24 Sep 2011 00:00:28 +0000 (-0700) Subject: More secure rand. num generator, fixed input error, clearer error msgs. X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=f33db1171f37a203cf2cc45cf1fb5d781db69002;p=redacted-XKCD-password-generator.git More secure rand. num generator, fixed input error, clearer error msgs. --- diff --git a/README.mkd b/README.mkd index 1760dd1..c90fb22 100644 --- a/README.mkd +++ b/README.mkd @@ -6,4 +6,4 @@ For more memorable words, try `2of12.txt`, available from http://wordlist.source **Configuration:** Change `word_list` variable in `generate_wordlist()` -**Requirements:** None +**Requirements:** Python 2.4+ diff --git a/xkcd-password.py b/xkcd-password.py index d2f56c4..4091e96 100755 --- a/xkcd-password.py +++ b/xkcd-password.py @@ -20,20 +20,23 @@ def generate_wordlist(min_length=5, max_length=9): if min_length <= len(line.strip()) <= max_length: words.append(line.strip()) except: - ## file not found - pass - + print 'File not found.' + raise SystemExit return words if __name__ == '__main__': n_words = raw_input("Enter number of words (default 4): ") if not n_words: n_words = 4 - + else: n_words = int(n_words) + accepted = "n" wordlist = generate_wordlist() while accepted.lower() not in [ "y", "yes" ]: - passwd = " ".join(random.sample(wordlist, n_words)) + try: + passwd = " ".join(random.SystemRandom().sample(wordlist, n_words)) + except NotImplementedError: + print 'System does not support random number generator or Python version < 2.4.' print "Generated: ", passwd accepted = raw_input("Accept? [yN] ")