Welcome, guest | Sign In | My Account | Store | Cart

The code generates passwords using different techniques and then checks them according to bit strength. Was written in context of Generating And Checking Passwords In Python.

Python, 56 lines
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56``` ```import passwordadvisor import random import string import re import sys import math def ex1(num): password = '' for i in range(int(num)): password += chr(random.randint(33,126)) return password ex2 = lambda length, ascii = string.ascii_letters + string.digits + string.punctuation: "".join([list(set(ascii))[random.randint(0,len(list(set(ascii)))-1)] for i in range(length)]) def ex3(argv): password = '' for i in range(len(argv)): for j in range(int(argv[i])): if i == 0: password += string.uppercase[random.randint(0,len(string.uppercase)-1)] elif i == 1: password += string.lowercase[random.randint(0,len(string.lowercase)-1)] elif i == 2: password += string.digits[random.randint(0,len(string.digits)-1)] elif i == 3: password += string.punctuation[random.randint(0,len(string.punctuation)-1)] return ''.join(random.sample(password,len(password))) def bit_strength(password): return str(math.floor(len(password)*math.log(94,2))) def checker2(argv): example_1 = ex1(argv[1]) print example_1 + ' ' + bit_strength(example_1) example_2 = ex2(int(argv[2])) print example_2 + ' ' + bit_strength(example_2) example_3 = ex3([argv[3],argv[4],argv[5],argv[6]]) print example_3 + ' ' + bit_strength(example_3) def main(argv): if (len(sys.argv) != 7): sys.exit('Usage: ex4.py ') checker2(sys.argv) if __name__ == "__main__": main(sys.argv[1:]) ```
 Created by Captain DeadBones on Wed, 2 Jan 2013 (MIT)