当前位置:   article > 正文

随机密码生成器version 0.1_随机生成账号密码工具

随机生成账号密码工具

前言

本篇仅供个人学习参考
更新日志
2022.7.22 当前程序在编辑软件上可用,同时在学习其他内容,暂不做更新,若后续找到了更好的方法会升级该程序。

version 0.1

main.py 主程序

  • 输入密码长度
  • 运行randomKey()得到随机数
  • 运行savetxt将数据存储
  • 显示结果
from randomKey import randomKey
from savetxt import savetxt

if __name__ == '__main__':
    
    key = randomKey() # 需要实例化
    txt = savetxt()
    txt.createSaveFile()
    while True:
        print('-------------------------------')
        print('-------* 随机密码生成器 *-------')
        print('-------- 1 生成随机密码 --------')
        print('-------- 2 保存已有密码 --------')
        print('-------- 3   退出程序 ----------')
        print('-------------------------------')
        print('请输入执行程序:')
        t = input()
        if t == '1':
            while True:
                website = input('请输入网站名称或软件名称:')
                username = input('请输入用户名:')
                passwordLength = int(input('请输入你想要的密码长度(9-25):'))
                # 生成高强度随机密码(大小写英文字符 + 数字 + 特殊字符)
                password = key.Key(passwordLength)
                # 显示生成密码
                # print(password)
                txt.saveFile(website,username,password)
                print('========================')
                print('== 1 继续生成随机密码  ==')
                print('== 2 返回上一层        ==')
                print('========================')
                pd_01 = input('请输入序号:')
                if pd_01 == '1':
                    continue
                elif pd_01 == '2':
                    break
                else:
                    print('请输入正确的序号!')
                    continue
        elif t == '2':
            while True:
                website = input('请输入网站名称或软件名称:')
                username = input('请输入用户名:')
                password = input('请输入你的密码:')
                txt.saveFile(website,username,password)
                print('========================')
                print('== 1 继续保存账号密码  ==')
                print('== 2 返回上一层        ==')
                print('========================')
                pd_02 = input('请输入序号:')
                if pd_02 == '1':
                    continue
                elif pd_02 == '2':
                    break
                else:
                    print('请输入正确的序号!')
                    continue
        elif t == '3':
            break
        else:
            print('输入指令有误,请重新输入!')
            continue
  • 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

savetxt 将内容存储到txt文件夹

  • Step1:判断当前路径下是否存在Save文件夹,若不存在,则创建Save文件夹;若存在,则Step2
  • Step2:将密码写入key.txt文件(不覆盖’a’;覆盖’w’)

保存结构:

网站名称(软件名称)用户名(账户名称)密码
qq123456789zz123456789
csdn123456789zz123456789
import os

class savetxt:
    def __init__(self) -> None:
        self.dir_path = os.getcwd() + r'\Save' # 绝对路径
        self.file_path = self.dir_path + '\\key.txt'
    
    def createSaveFile(self):
        if not os.path.exists(self.dir_path):
            os.makedirs(self.dir_path)
            print(self.dir_path + "创建成功")
        else:
            print(self.dir_path,"已经存在该目录")
    
    def saveFile(self,website,username,content):
        with open(self.file_path,'a',encoding='utf-8') as f:
            f.write(website+':'+username+' '+content)
            f.write('\n')
            print("保存成功!")
            f.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
'
运行

randomKey 产生高强度随机密码

  • 获取所需密码长度,返回结果
import random

class randomKey:
    
    def __init__(self) -> None:
        
        # 初始化
        englishUperChar = [chr(i) for i in range(65,91)]
        englishLowerChar = [chr(i) for i in range(97,123)]
        numberChar = [chr(i) for i in range(48,58)]
        symbolChar = ['.',' ','@','$','!','%','*','#','_','~','?','&','^']
        self.eLUNChar = englishUperChar + englishLowerChar + numberChar + symbolChar
        # 打乱初始化列表
        random.shuffle(self.eLUNChar)
    
    def Key(self,passwordLength): # 方法需要实例化
        try:
            if (passwordLength < 9) or (passwordLength > 25):
                return 'Out of range, Please check the number you entered'
            password = ''
            for i in range(int(passwordLength)):
                password = password + self.eLUNChar[random.randint(0,len(self.eLUNChar)-1)]
            return password
        except Exception as err:
            return err
  • 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
'
运行

后记:

1. 打算在version 0.2加入GUI,打算用tkinter尝试,最后打包成exe文件
2. 后续同时打算加入web网页作为尝试

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/897093
推荐阅读
相关标签
  

闽ICP备14008679号