当前位置:   article > 正文

Python 随机生成高强度密码_随机高强度密码

随机高强度密码
"""
该源码的实现过程:1、这年头,几十个账户,几十个密码,每次一设置密码就头疼,不知道设置啥。
                设置简单容易被暴力破解,设置复杂不知道设置成啥样的密码。
                所以就想出来设置随机数密码,自动生成,又能防止暴力破解。
               2、最大的优点也是缺点,人是记不住随机数的,所以密码备份就显得特别重要。
                特别是对该密码的解释,不然你回头找密码的时候,发现这个密码不知道对应哪个账号。
                3、1.0版本用了黑窗,非常不美观,这次用了窗体。
"""

import os
import random
import easygui as eg

# 字母类型
englishChar = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'l', 'k', 'j', 'h', 'g', 'f', 'd', 's', 'a', 'z', 'x',
               'c', 'v',
               'b', 'n', 'm']
# 数字类型
numberChar = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']

# 符号类型
symbolChar = ['!', '@', '#', '$', '%', '^', '&', '*']

# 生成的密码
password = ''

# 用户选择的密码类型
allChar = []

# 选择密码类型,如果选择cancel退出程序,啥都不选退出程序
typePassword = eg.multchoicebox(msg="密码类型", title="随机密码", choices=['数字', '字母', '符号'],
                                preselect=0, callback=None,
                                run=True)
# 退出程序
if not isinstance(typePassword, list):
    exit(1)

# 根据密码类型拼接密码库
for i in (typePassword):
    if i.__eq__('数字'):
        allChar += numberChar.copy()
    if i.__eq__('字母'):
        allChar += englishChar.copy()
    if i.__eq__('符号'):
        allChar += symbolChar.copy()

# 把密码打乱
random.shuffle(allChar)

# 设置密码长度
passwordLength = eg.integerbox(msg="密码的长度(9-25)", title="随机密码", default=None,
                               lowerbound=9, upperbound=25, image=None, root=None)
# 退出程序
if not isinstance(passwordLength, int):
    exit(1)
# 配置密码的信息
while 1:
    chooses = eg.multenterbox(msg="该密码的信息", title="随机密码",
                              fields=['这个密码给谁用?', '该密码的账号'], callback=None, run=True)
    # 退出程序
    if not isinstance(chooses, list):
        exit(1)
    # 信息满足要求  退出循环  进入下一步
    if not '' in chooses:
        break
    else:
        # 不满足要求
        eg.msgbox(msg="信息不能设置为空,请重新输入", title="随机密码",
                  ok_button="OK", image=None, root=None)
# 获得密码
for i in range(int(passwordLength)):
    # 每次循环随机取一位密码
    password = password + allChar[random.randint(0, len(allChar) - 1)]
eg.msgbox(msg="因为密码是随机的,需要备份密码,接下来会选择存放备份密码的文件夹。", title="随机密码",
          ok_button="OK", image=None, root=None)
          
# 选择文件保存路径
path = eg.diropenbox(msg="备份密码的文件", title="随机密码", default="")

# 拼接文件路径
passwordPath = path + '/' + chooses[0] + '的账户和密码.txt'

# 如果文件重复  文件结尾拼接_repeat
while 1:
    if os.path.exists(passwordPath):
        passwordPath = passwordPath[:-4] + '_repeat.txt'
    else:
        break

# 把账号密码写入文件,进行备份
with open(passwordPath, 'w', encoding='utf8') as file:
    file.writelines("账户ID:" + chooses[1] + '\n')
    file.writelines('密码:' + password)
    file.close

# 展示密码
eg.enterbox(msg="随机生成的密码", title="随机密码", default=password,
            strip=True, image=None, root=None)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/361468
推荐阅读