最近在研究PySimpleGUI库,把之前写的一个随机密码生成器改成GUI版本发出来,有兴趣的兄弟们可以拿走。
因为能力有限,目前只能写生成一个随机密码的Gui版本,等我学了更多的内容再慢慢完善。
核心代码很简单,界面也很粗陋
from pyperclip import copy
import PySimpleGUI as sg
import random
import string
def get_passwords(xiaoxie=True,
daxie=True,
shuzi=True,
biaodian=True,
zidingyi='',
qianzhui='',
houzhui='',
paichu='',
pwd_len=11,
pwd_count=1):
pwd_list = []
if not any([xiaoxie, daxie, shuzi, biaodian]): return '至少要勾选一种密码类型!'
words = zidingyi
if xiaoxie: words += string.ascii_lowercase #小写字母
if daxie: words += string.ascii_uppercase #大写字母
if shuzi: words += string.digits #数字
if biaodian: words += string.punctuation #标点
#规避样本数量 < 密码长度的问题
if len(words) <= pwd_len: words = words * (pwd_len // len(words) + 1)
zhui_len = len(f'{
qianzhui}{
houzhui}')
if pwd_len < zhui_len:
return '密码长度<前后缀的长度之和!'.split() * 3
for _ in range(pwd_count):
chosen = ''.join(random.sample(words, pwd_len)) #生产随机列表
chosen = f'{
qianzhui}{
chosen}{
houzhui}' #加前后缀
if set(paichu): #排除字符
for i in set(paichu):
chosen = chosen.replace(i, '')
pwd_list.append(chosen.strip()) # 组成字符串
return [
f'{
str(n).zfill(