当前位置: 首页 > news >正文

Python网安-随机密码生成器

目录

源码在这里

首先是需要导入这几个模块

存储生成的密码以及设置命令行参数解析器

设置两个部分,一个是根据总长度随机生成密码,另一个是根据指定格式生成密码。

利用if,else根据参数生成密码并打印,以及将密码写入文件(如果制定了输出文件)

在终端实验一下:


源码在这里

https://github.com/Wist-fully/Attack/blob/passwd_generator/passwd_generator.py

首先是需要导入这几个模块

from argparse import ArgumentParser
import string
import random
import secrets

存储生成的密码以及设置命令行参数解析器

passwords = []def SetParser():parser = ArgumentParser(prog = "密码生成器",description = "这是一个简单的密码生成器,可以生成任意形式的密码")parser.add_argument("-l","--lowercase",default=0,help="密码包含小写字符的位数",type=int)parser.add_argument("-u","--uppercase",default=0,help="密码包含大写字符的位数",type=int)parser.add_argument("-n","--numbers",default=0,help="密码包含数字的位数",type=int)parser.add_argument("-s","--special-chars",default=0,help="密码包含特殊字符",type=int)parser.add_argument("-t","--total-length",default=0,help="密码的总长度",type=int)parser.add_argument("-nu","--number",default=0,help="生成密码的数量",type=int)parser.add_argument("-a","--amount",default=0,help="控制长度",type=int)parser.add_argument("-o","--output-file")return parser.parse_args()

设置两个部分,一个是根据总长度随机生成密码,另一个是根据指定格式生成密码。

def CreateRandomPWD(args):for _ in range(args.amount):passwords.append("".join([secrets.choice(string.digits+string.ascii_letters+string.punctuation)\for _ in range(args.total_length)]))
def CreateArgumentPWD(args):for _ in range(args.amount):password = []for _ in range(args.numbers):password.append(secrets.choice(string.digits))for _ in range(args.uppercase):password.append(secrets.choice(string.ascii_uppercase))for _ in range(args.lowercase):password.append(secrets.choice(string.ascii_lowercase))for _ in range(args.special_chars):password.append(secrets.choice(string.punctuation))random.shuffle(password)password = ''.join(password)passwords.append(password)

利用if,else根据参数生成密码并打印,以及将密码写入文件(如果制定了输出文件)

if __name__ == "__main__":args = SetParser()if args.total_length:CreateRandomPWD(args)else:CreateArgumentPWD(args)print('\n'.join(passwords))if args.output_file:with open(args.output_file,'w') as f:f.write('\n'.join(passwords))

在终端实验一下:

python .\2.py -l 3 -n 3  -a 5 -o 2.txt

相关文章:

  • 架构轻巧的kokoro 文本转语音模型
  • tcpdump用法
  • 快速傅里叶变换(FFT)是什么?
  • 以太网基础与 VLAN 配置实验
  • HTML 按钮单击事件示例
  • OceanBase批量插入数据报错java.lang.ArrayIndexOutOfBoundsException:0
  • 华为云鸿蒙应用入门级开发者认证 实验(HCCDA-HarmonyOS Cloud Apps)
  • EMQ X Broker 配置HTTP 的外部鉴权接口
  • 力扣-合并区间
  • QT6实现软键盘的两种方法
  • 腾讯混元API调用优化实战:用API网关实现流量控制+缓存+监控
  • 2-深度学习挖短线股-3-训练数据计算
  • 【windows处理技巧】如何缩小PDF
  • 鸿蒙边缘智能计算架构实战:多线程图像采集与高可靠缓冲设计
  • LeetCode 2311.小于等于 K 的最长二进制子序列:贪心(先选0再选1)-好像还是比灵神写的清晰些
  • VUE3入门很简单(3)--- watch
  • SpringBoot项目快速开发框架JeecgBoot——Web处理!
  • [AI]从0到1通过神经网络训练模型
  • Docker 入门教程(一):从概念到第一个容器
  • 【C++】ATM机模拟系统 :完整窗口实现