Python技术可以根据要求自动生成密码字典

Python技术:可以根据要求自动生成密码字典。Python程序,可以根据要求自动生成密码字典,并拆分成多个5M的文件。

代码演示

from itertools import product  # 导入itertools模块中的product函数,用于生成笛卡尔积
import os  # 导入os模块,用于处理文件和目录

def generate_passwords(length, use_letters, use_digits, use_chars):
    characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()'
    if not use_letters:
        characters = ''.join([c for c in characters if not c.isalpha()])  # 如果不使用字母,则从字符集中移除所有字母
    if not use_digits:
        characters = ''.join([c for c in characters if not c.isdigit()])  # 如果不使用数字,则从字符集中移除所有数字
    if not use_chars:
        characters = ''.join([c for c in characters if c.isalnum() and (not c.isalpha() or not c.isdigit())])  # 如果不使用特殊字符,则从字符集中移除所有非字母和非数字的字符
    return [''.join(p) for p in product(characters, repeat=length)]  # 生成指定长度的密码列表,每个密码由字符集中的字符组成

def write_to_file(passwords, filename):
    with open(filename, 'a') as f:  # 以追加模式打开文件
        for password in passwords:  # 遍历密码列表
            f.write(password + '\n')  # 将密码写入文件,并在每个密码后添加换行

def split_file(file_path, max_size):
    # 检查文件是否存在
    if not os.path.exists(file_path):
        print("文件不存在")
        return
    # 获取文件大小
    file_size = os.path.getsize(file_path)
    # 如果文件大小小于等于指定大小,直接返回
    if file_size <= max_size:
        return
    # 计算需要拆分的文件数量
    num = file_size // max_size + (1 if file_size % max_size > 0 else 0)
    # print(num)
    with open(file_path, 'r') as f:
        for i in range(num-1):
            with open(f"{file_path}_{i}.txt", 'w') as temp_file:
                temp_file.write(f.read(max_size))
            print(f"文件已拆分为 {file_path}_{i}.txt")
			

if __name__ == '__main__':
    passwords = generate_passwords(4, False, False, True)  # 生成长度为4的密码列表,包含字母、数字和特殊字符(可根据需要修改参数)
    #for i in range(10):  # 循环10次
    filename = f'Passwords_'  # 生成文件名
    write_to_file(passwords, filename)  # 将密码列表写入文件
    split_file(filename, 5 * 1024 * 1024)  # 将文件分割为最大不超过5MB的新文件
温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
编程技巧

织梦教程DedeCMS系统列表页标题加页码的方法

2023-10-30 0:00:00

编程技巧

织梦教程DedeCMS系统arclist标签生成的代码不换行的方法

2023-11-1 0:00:00

0 条回复 A文章作者 M管理员
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索