赞
踩
本篇仅供个人学习参考
更新日志
2022.7.22 当前程序在编辑软件上可用,同时在学习其他内容,暂不做更新,若后续找到了更好的方法会升级该程序。
main.py 主程序
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
savetxt 将内容存储到txt文件夹
保存结构:
网站名称(软件名称) | 用户名(账户名称) | 密码 |
---|---|---|
123456789 | zz123456789 | |
csdn | 123456789 | zz123456789 |
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()
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. 打算在version 0.2加入GUI,打算用tkinter尝试,最后打包成exe文件;
2. 后续同时打算加入web网页作为尝试。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。