python123随机密码生成器_Python授权码生成器(密码生成器)

import random

import string

import wx

class InfoPanel(wx.Frame):

def __init__(self, parent, id):

wx.Frame.__init__(self, parent, id, "GenCode", pos=(0, 0), size=(500, 380))

panel = wx.Panel(self, -1)

rev = wx.StaticText(panel, -1, "生成的密码长度:", pos=(5, 10))

rev.SetForegroundColour("black")

rev.SetBackgroundColour("") # 文字背景颜色,不输入为透明

button = wx.Button(panel, wx.ID_ANY, pos=(100, 255), size=(150, 50), label='生成')

button.Bind(wx.EVT_BUTTON, self.GenPassword)

button2 = wx.Button(panel, wx.ID_ANY, pos=(250, 255), size=(150, 50), label='清空')

button2.Bind(wx.EVT_BUTTON, self.Clear)

button3 = wx.Button(panel, wx.ID_ANY, pos=(280, 5), size=(80, 30), label='复制到剪切板')

button3.Bind(wx.EVT_BUTTON, self.OnCopy)

button4 = wx.Button(panel, wx.ID_ANY, pos=(100, 305), size=(300, 30), label='上一个')

button4.Bind(wx.EVT_BUTTON, self.previous)

self.text = wx.TextCtrl(panel, wx.ID_ANY, pos=(0, 50), size=(484, 205), style=wx.TE_MULTILINE)

self.text2 = wx.TextCtrl(panel, wx.ID_ANY, pos=(110, 5), size=(150, 30))

self.text2.AppendText(str(8))

self.cb1 = wx.CheckBox(panel, label='区分大小写', pos=(380, 10))

self.cb1.SetValue(1)

self.count = 0

self.genPwd = ""

self.box = []

def GenPassword(self, event):

try:

self.text.Clear()

length = int(self.text2.GetValue())

numOfNum = random.randint(1, length - 1)

numOfLetter = length - numOfNum

# 选中numOfNum个数字

slcNum = [random.choice(string.digits) for i in range(numOfNum)]

# 选中numOfLetter个字母

slcLetter = [random.choice(string.ascii_letters) for i in range(numOfLetter)]

# 打乱这个组合

slcChar = slcNum + slcLetter

random.shuffle(slcChar)

# 生成密码

self.genPwd = ''.join([i for i in slcChar])

if self.cb1.GetValue() == 1:

self.text.AppendText(self.genPwd)

self.box.append(self.genPwd)

else:

self.text.AppendText(self.genPwd.lower())

self.box.append(self.genPwd.lower())

self.count += 1

except ValueError:

self.text.AppendText("输入错误,请输入大于1整数!!!")

def previous(self, event):

self.text.Clear()

try:

self.text.AppendText(self.box[self.count - 2])

except IndexError:

self.text.AppendText("无")

def Clear(self, event):

self.text.Clear()

self.text2.Clear()

self.count = 0

self.box = []

def OnCopy(self, event):

text_obj = wx.TextDataObject()

text_obj.SetText(self.text.GetValue())

if wx.TheClipboard.IsOpened() or wx.TheClipboard.Open():

wx.TheClipboard.SetData(text_obj)

wx.TheClipboard.Close()

dlg = wx.MessageDialog(self,

'已经复制到剪切板', '复制到剪切板', wx.OK | wx.ICON_INFORMATION)

dlg.ShowModal()

dlg.Destroy()

class MainApp(wx.App):

def OnInit(self):

self.frame = InfoPanel(None, -1)

self.frame.Show(True)

self.SetTopWindow(self.frame)

return True

if __name__ == '__main__':

app = MainApp(0)

app.MainLoop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值