python随机密码生成器_python实例--随机密码生成器

本文展示了如何利用Python的wx库创建一个简单的图形界面应用,该应用能够生成随机密码。用户可以自定义密码长度、数量以及是否包含字母、数字和特殊字符。程序通过检查用户输入并结合random模块生成不同类型的密码。
摘要由CSDN通过智能技术生成

最近在学习python,抽空看了看图形化模块wx,顺手写了个随机密码生成器,程序运行界面如下图:(注:在Ubuntu下运行结果)

源代码如下:

import wx

import string

import random

class Frame(wx.Frame):

def __init__(self,parent,id):

wx.Frame.__init__(self,parent,id,'随机密码生成器',size=(430,285))

panel = wx.Panel(self)

font=wx.Font(9,wx.MODERN, wx.NORMAL, wx.NORMAL)

wx.StaticBox(panel, -1, '参数选项', (5,10), (300,80))

wx.StaticText(panel,-1,'密码长度',(30,30))

self.usertext = wx.TextCtrl(panel,-1,'8',(100,30),(40,20))

self.usertext.SetFont(font)

wx.StaticText(panel,-1,'密码数量',(150,30))

self.usertext1 = wx.TextCtrl(panel,-1,'1',(220,30),(40,20))

self.usertext1.SetFont(font)

self.select1 = wx.CheckBox(panel, -1, '字母', (30,60))

self.select1.SetValue(True)

self.select2 = wx.CheckBox(panel, -1, '数字', (100,60))

self.select2.SetValue(True)

self.select3 = wx.CheckBox(panel, -1, '特殊字符', (170,60))

self.select3.SetValue(False)

self.button1 = wx.Button(panel, label='生成', pos=(320, 30), size=(80, 25))

self.button2 = wx.Button(panel, label='清空', pos=(320, 60), size=(80, 25))

self.usertext2 = wx.TextCtrl(panel,-1,'',(30,100),(350,150),style=wx.TE_MULTILINE|wx.HSCROLL|wx.TE_READONLY)

self.usertext2.SetFont(font)

self.Bind(wx.EVT_BUTTON, self.show, self.button1)

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

def show(self,event):

value1 = self.usertext.GetValue()

value2 = self.usertext1.GetValue()

value3 = self.select1.GetValue()

value4 = self.select2.GetValue()

value5 = self.select3.GetValue()

yy = '~!@#$%^&*(),<>?'

uu=''

bob = []

if not value1 or not value2:

wx.MessageBox('请输入密码长度和密码数量','错误')

if value3 :

uu = uu+string.ascii_letters

if value4 :

uu = uu+string.digits

if value5 :

uu = uu+yy

if not uu :

wx.MessageBox('请选择密码类型','错误')

else :

for i in range(int(value2)):

tt = ''.join(random.sample(list(uu),int(value1)))

bob.append(tt)

self.usertext2.SetValue('\n'.join(bob))

def clear(self,event):

self.usertext2.Clear()

if __name__ == '__main__':

app = wx.PySimpleApp()

frame = Frame(parent=None, id=-1)

frame.Show()

app.MainLoop()

©著作权归作者所有:来自51CTO博客作者13319085的原创作品,如需转载,请注明出处,否则将追究法律责任

实例Pythonwxpythonshell与编程

打开App,阅读手记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值