]> code.delx.au - monosys/commitdiff
passphrasegen: XKCD style password generator
authorJames Bunton <jamesbunton@delx.net.au>
Mon, 5 Jun 2017 13:01:07 +0000 (23:01 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Mon, 5 Jun 2017 13:01:07 +0000 (23:01 +1000)
passphrasegen [new file with mode: 0755]

diff --git a/passphrasegen b/passphrasegen
new file mode 100755 (executable)
index 0000000..2ff3747
--- /dev/null
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+
+import random
+import os
+
+WORDS_FILENAME = os.environ.get("WORDS", "/usr/share/dict/words")
+NUM_WORDS = 3
+MAX_LEN = 7
+MIN_LEN = 3
+
+WORDS = open(WORDS_FILENAME)
+WORDS = [word.strip().title() for word in WORDS]
+WORDS = [word for word in WORDS if word.isalpha() and MIN_LEN <= len(word) <= MAX_LEN]
+
+def generate():
+    random_words = [random.choice(WORDS) for _ in range(NUM_WORDS)]
+    random_number = random.randint(10, 100)
+    return "-".join(random_words + [str(random_number)])
+
+for i in range(10):
+    print(generate())