漏洞利用-暴力破解-密码生成器
本文最后更新于 420 天前,其中的信息可能已经有所发展或是发生改变。

:::info
💘渗透全流程:
信息收集 – 漏洞发现 – 漏洞👣利用 – 权限提升 – 隧道搭建 – 内网渗透 – 横向移动 – 后渗透
:::

密码生成器

pip install argparse
pip install random
pip install secrets

V1.0

#! /usr/bin/env python

'''
python .\v1.0.py -n 8 -u 3 -l 2 -s 7 -a 5
'''

from argparse import ArgumentParser
import string
import random
import secrets # 密码强随机数(安全随机数) Python 3.6  新增的模块

parser = ArgumentParser(
    prog='password generater',
    description='xxx'
)

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', '--punctuation', default=0, help='包含特殊字符的位数', type=int)
parser.add_argument('-t', '--length', default=8, help='密码的位数', type=int)
parser.add_argument('-a', '--amount', default=1, help='生成密码的数量', type=int)
parser.add_argument('-r', '--random', default=0, help='输入一个总长度,字符完全随机', type=int)

args = parser.parse_args()

# print(string.digits) # 数字
# print(string.ascii_lowercase) # 小写字符
# print(string.ascii_uppercase) # 大写字符
# print(string.punctuation) # 特殊符号

passwords = []
for _ in range(args.amount):
    if args.random:
        passwords.append(''.join(
            [secrets.choice(string.digits + string.ascii_letters + string.punctuation) for _ in range(args.random)]
        ))
    else:
        password = []
        for _ in range(args.numbers):
            password.append(secrets.choice(string.digits))
        for _ in range(args.lowercase):
            password.append(secrets.choice(string.ascii_lowercase))
        for _ in range(args.uppercase):
            password.append(secrets.choice(string.ascii_uppercase))
        for _ in range(args.punctuation):
            password.append(secrets.choice(string.punctuation))

        random.shuffle(password)
        password = ''.join(password)
        passwords.append(password)

for _ in passwords:
    print(_)
# if __name__ == '__main__':

V2.0

优化:

  1. 模块化
  2. 增加 -o 参数输出到文件
#! /usr/bin/env python

'''
python .\v1.0.py -n 8 -u 3 -l 2 -s 7 -a 5
'''

from argparse import ArgumentParser
import string
import random
import secrets # 密码强随机数(安全随机数) Python 3.6  新增的模块

# print(string.digits) # 数字
# print(string.ascii_lowercase) # 小写字符
# print(string.ascii_uppercase) # 大写字符
# print(string.punctuation) # 特殊符号

passwords = []

def SetParser():
    parser = ArgumentParser(
        prog='password generater',
        description='xxx'
    )
    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', '--punctuation', default=0, help='包含特殊字符的位数', type=int)
    parser.add_argument('-t', '--length', default=8, help='密码的位数', type=int)
    parser.add_argument('-a', '--amount', default=1, help='生成密码的数量', type=int)
    parser.add_argument('-r', '--random', default=0, help='输入一个总长度,字符完全随机', type=int)
    parser.add_argument('-o', '--output-file')

    return parser.parse_args()

def CreateArgumentPassword(args):
    for _ in range(args.amount):
        password = []
        for _ in range(args.numbers):
            password.append(secrets.choice(string.digits))
        for _ in range(args.lowercase):
            password.append(secrets.choice(string.ascii_lowercase))
        for _ in range(args.uppercase):
            password.append(secrets.choice(string.ascii_uppercase))
        for _ in range(args.punctuation):
            password.append(secrets.choice(string.punctuation))

        random.shuffle(password)
        password = ''.join(password)
        passwords.append(password)

def CreateRandomPassword(args):

    for _ in range(args.amount):
        passwords.append(''.join(
            [secrets.choice(string.digits + string.ascii_letters + string.punctuation) for _ in range(args.random)]
        ))
        # print('please enter the arguments -r. ex python xxx.py -r 10')

if __name__ == '__main__':
    args = SetParser()
    if args.random:
        CreateRandomPassword(args)
    else:
        CreateArgumentPassword(args)

    print(len(passwords))

    print('\n'.join(passwords))

    if args.output_file:
        with open(args.output_file, 'w') as f:
            f.write('\n'.join(passwords))
学海无涯,回头是岸。 --- hola
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇