本位实例为大家分享了Python生成随机密码的实现过程,供大家参考,具体内容如下
写了个程序,主要是用来检测MySQL数据库的空密码和弱密码的,
在这里,定义了三类弱密码:
1. 连续数字,譬如123456,在get_weak_num中实现
2. 连续字母,譬如abcdef,在get_weak_character中实现
当然,个数都是随机的。
3. 数字和字母随机组合。在get_weak_num_character中实现。
同时定义了一个password_exist的列表,用于保存不同的密码。如果新生成的密码在列表中存在,则不进行MySQL数据库的连接,直接到下一次循环。
具体如下:
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
|
#coding=utf8 import random,string,MySQLdb def get_num(): return random.randint( 0 , 9 ) def get_char(): return random.choice( tuple (string.lowercase)) def choose_any(): return [ str (get_num()),get_char()] def get_weak_num(): weak_num = [] initial_num = get_num() for i in range (get_num()): weak_num.append( str (initial_num + i)) if initial_num + i = = 9 : break ; return weak_num def get_weak_character(): weak_character = [] initial_character = get_char() for i in range (get_num()): weak_character.append( chr ( ord (initial_character) + i)) if chr ( ord (initial_character) + i) = = 'z' : break return weak_character def get_weak_num_character(): return [random.choice(choose_any()) for num in range (get_num())] password_exist = [] for i in range ( 10000 ): choice = [get_weak_num(), get_weak_character(), get_weak_num_character()] password = ''.join(random.choice(choice)) print "第" + str (i) + "次密码为:" + password if password in password_exist: continue else : try : MySQLdb.connect( '192.168.244.145' , 'root' , password) print 'The password for MySQL is:' + password break except : continue password_exist.append(password) if i = = 9999 : print 'The password is not so weak~' |
以上就是本文的全部内容,希望对大家的学习有所帮助。