Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 如何利用Python生成随机密码

写了个程序,主要是用来检测MySQL数据库的空密码和弱密码的,在这里,定义了三类弱密码:1. 连续数字,譬如123456,在get_weak_num中实现2. 连续字母,譬如abcdef,在get_weak_character中实现当然,个数都是随机的。3. 数字和字母随机组合。在get_weak_num_character中实现。同时定义了一个password_exist的列表,用于保存不同的密码。如果新生成的密码在列表中存在,则不进行MySQL数据库的连接,直接到下一次循环。具体如下:#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~"《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htmPython脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htmPython 的详细介绍:请点这里
Python 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130430.htm