您当前的位置:首页 > 计算机 > 编程开发 > Python

Python生成强密码字典文件

时间:09-07来源:作者:点击数:

本文要点在于演示如何使用正则表达式验证密码强度,以及如何生成大量字符的排列。由于下面代码生成的字典过于庞大,所以并没有很直接的应用场景,可对生成的强密码再次进行过滤,仅保留可能性较大的密码,这样可以减小字典体积,但同时也会降低暴力破解的成功率。

from itertools import permutations

import re

import string

#所有备选字符

allLetters = string.ascii_letters + string.digits + ',.;![]()@#$&*'

#用来验证密码强度的正则表达式

#如果字符串中同时包含英文字母大写、小写、数字、标点符号,则认为是强密码

pattern = r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[,.;!\[\]\(\)@#$&*_]).{4,}$'

def generateStrongPwd():

    with open('dict.txt', 'w') as fp:

        for length in range(4, 9):

            #permutations()函数用来生成从n个元素中任选k个得到的所有排列

            for pwd in permutations(allLetters, length):

                #迭代permutations对象时得到的是元组

                #所以需要转换成字符串

                pwd = ''.join(pwd)

                #检查密码强度

                if re.match(pattern, pwd):

                    #如果是强密码,写入字典文件

                    fp.write(pwd)

generateStrongPwd()

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门