]>
Commit | Line | Data |
---|---|---|
1eacad68 JP |
1 | #!/usr/bin/python |
2 | ||
3 | def nicepass(alpha=6,numeric=2): | |
4 | """ | |
5 | returns a human-readble password (say rol86din instead of | |
6 | a difficult to remember K8Yn9muL ) | |
7 | """ | |
8 | import string | |
9 | import random | |
10 | vowels = ['a','e','i','o','u'] | |
11 | consonants = [a for a in string.ascii_lowercase if a not in vowels] | |
12 | digits = string.digits | |
13 | ||
14 | def a_part(slen): | |
15 | ret = '' | |
16 | for i in range(slen): | |
17 | if i%2 ==0: | |
18 | randid = random.randint(0,20) #number of consonants | |
19 | ret += consonants[randid] | |
20 | else: | |
21 | randid = random.randint(0,4) #number of vowels | |
22 | ret += vowels[randid] | |
23 | return ret | |
24 | ||
25 | def n_part(slen): | |
26 | ret = '' | |
27 | for i in range(slen): | |
28 | randid = random.randint(0,9) #number of digits | |
29 | ret += digits[randid] | |
30 | return ret | |
31 | ||
32 | fpl = alpha/2 | |
33 | if alpha % 2 : | |
34 | fpl = int(alpha/2) + 1 | |
35 | lpl = alpha - fpl | |
36 | ||
37 | start = a_part(fpl) | |
38 | mid = n_part(numeric) | |
39 | end = a_part(lpl) | |
40 | ||
41 | return "%s%s%s" % (start,mid,end) | |
42 | ||
43 | if __name__ == "__main__": | |
44 | print nicepass() |