Generating Diceware Passwords in Python
Today I'm going back to a theme from a post I wrote last year and looking at generating passwords with my favourite programming language. A tweet from Simon Brunning pointed me to Micah Lee's article at The Intercept and my first thought was to write a function to do this in Python. So here it is;
import random word_dict = {} passphrase = [] with open('diceware.wordlist.andy.txt') as f: for line in f.readlines(): index, word = line.strip().split('\t') word_dict[int(index)] = word for words in range(0, word_count): this_index = 0 for position in range(0, 5): digit = random.randint(1, 6) this_index += digit * pow(10, position) passphrase.append(word_dict[this_index]) return ' '.join(passphrase)
In terribly bad form I've hard coded the diceware word list file name. I took the English word list and converted it to a plain text file for easier processing. The original will probably work just as well, I just haven't tested it.