详解如何通过Python制作一个密码生成器

目录
  • 原由
  • 编程思路
  • 代码
  • 效果如下
  • 补充

原由

定期更换密码是一种非常重要的安全措施,这种做法可以有效地保护你的账户和个人信息不受黑客和网络攻击者的侵害。

密码泄露是一个非常普遍的问题,许多人的账户和密码经常会被泄露出来,导致个人信息被盗用、金融损失、恶意软件感染等严重问题。定期更换密码可以减少这种风险,因为即使你的密码被盗了,攻击者也只能获得你的信息和权限一段时间。

此外,定期更换密码还可以提高你的账户安全性,因为许多人使用相同的密码和用户名登录多个网站和服务,如果一个密码被盗,黑客可以轻松地访问其他帐户。通过定期更换密码,可以确保你的密码不会被黑客用于其他服务,从而提高你的安全性。

编程思路

首先导入了 Python 的 tkinter 模块和之前编写的生成随机密码的函数。然后,定义了一个 generate_callback 回调函数,用于生成随机密码,并将其显示在密码编辑框中。

在 generate_callback 函数中,首先使用 password_length_var.get() 获取用户输入的密码长度,然后调用之前编写的 generate_password 函数生成密码。最后,使用 password_edit.delete() 和 password_edit.insert() 方法将密码显示在密码编辑框中。

在主程序中,使用 tk.Label 和 tk.Entry 创建标签和输入框,用于输入密码长度。然后,使用 tk.Button 创建生成按钮,并将 generate_callback 函数指定为回调函数。接着,使用 tk.Label 和 tk.Entry 创建密码编辑框,用于显示生成的密码。

最后,使用 tk.mainloop() 进入主事件循环,等待用户操作。当用户点击生成按钮时,程序将自动调用 generate_callback 函数生成随机密码,并将其显示在密码编辑框中。

代码

import tkinter as tk
import random
import string

def generate_password(length):
    # 可以自定义密码中包含的字符集
    characters = string.ascii_letters + string.digits
    # 生成指定长度的随机密码
    password = ''.join(random.choice(characters) for i in range(length))
    return password

def generate_callback():
    # 获取密码长度
    password_length = int(password_length_var.get())
    # 生成密码
    password = generate_password(password_length)
    # 将密码显示在编辑框中
    password_edit.delete(0, tk.END)
    password_edit.insert(0, password)

# 创建主窗口
root = tk.Tk()
root.title("生成随机密码")

# 创建标签和输入框,用于输入密码长度
password_length_label = tk.Label(root, text="请输入要生成的密码长度:")
password_length_label.grid(row=0, column=0, padx=5, pady=5)
password_length_var = tk.StringVar()
password_length_edit = tk.Entry(root, textvariable=password_length_var)
password_length_edit.grid(row=0, column=1, padx=5, pady=5)

# 创建生成按钮
generate_button = tk.Button(root, text="生成密码", command=generate_callback)
generate_button.grid(row=1, column=0, padx=5, pady=5)

# 创建密码编辑框,用于显示生成的密码
password_edit_label = tk.Label(root, text="生成的密码:")
password_edit_label.grid(row=2, column=0, padx=5, pady=5)
password_edit = tk.Entry(root)
password_edit.grid(row=2, column=1, padx=5, pady=5)

# 进入主事件循环
root.mainloop()

效果如下

补充

除了上文的方法,小白还为大家准备了其他的Python实现密码生成的方法,需要的可以参考一下

python 随机生成密码

# 这里主要是以ascii码去表示上诉的字符串
#表示26个字母,查询ascci码的表示是65, 90,但是我是使用range表示,左闭右开,步长为一
import random
total_len = 12 #密码总长为12
daxiezimu = range(65,91, 1)  # 定义26个大写字母列表
xiaoxiezimu = range(97, 123, 1)  # 定义26个大写字母列表
shuzi = range(48, 58, 1) # 定义0-9个数字
teshuzifu = [64, 63, 96]  # 定义特殊字符@ ? \ 特殊字符就给了一个列表,因为assci码没有连续的
random3_list = [daxiezimu, xiaoxiezimu, teshuzifu]
for i in random3_list: # 循环需要随机生成0-3位的大小写字母跟特殊字符
    for j in range(random.randint(1, 3)): # 随机循环0-3的次数
       res.append(chr(random.choice(i))) # chr将ascii码转为字符 random.choice(i)随机从i中取出一个数
x = total_len - len(res) #需要生成x位长度的数字
for k in range(x):  #需要生成多少位的数字就循环几次
    res.append(chr(random.choice(shuzi)))
random.shuffle(res)   # random.shuffle(列表对象)  用来打乱列表

Python实现密码生成器

import random
import string

from gooey import GooeyParser,Gooey
@Gooey(encoding='utf8',program_name='强密码生成器',program_description='用于生成包含大小写字母、数字、特殊符号的强密码',optional_cols=1)
def stronge_password():
parse = GooeyParser(description='用于生成包含大小写字母、数字、特殊符号的强密码')
parse.add_argument('数量',widget='TextField')
parse.add_argument('长度',widget='TextField')
parse.add_argument('数字',widget='Dropdown',choices={"是":1,"否":0},default='是')
parse.add_argument('大写字母',widget='Dropdown',choices={"是":1,"否":0},default='否')
parse.add_argument('小写字母',widget='Dropdown',choices={"是":1,"否":0},default='否')
parse.add_argument('特殊符号',widget='Dropdown',choices={"是":1,"否":0},default='否')
parse.add_argument('去除词',widget='TextField',default='None')
args = parse.parse_args()
if args.数字 == "是":
digits = list(string.digits.strip())
else:
digits = []
if args.大写字母:
upper = list(string.ascii_uppercase)
else:
upper = []
if args.小写字母:
lower = list(string.ascii_lowercase)
else:
lower = []
if args.特殊符号:
symbol = list("~!@#$%^&*()_+{}[]/?")
else:
symbol = []
if args.去除词 != 'None':
stop_word = list(args.去除词.strip())
else:
stop_word = []
letter_list = digits + upper + lower + symbol
for item in stop_word:
if item in letter_list:
letter_list.remove(item)
for i in range(int(args.数量)):
result = ''.join([random.choice(letter_list) for i in range(int(args.长度))])
print(result)

if __name__ == '__main__':
stronge_password()

到此这篇关于详解如何通过Python制作一个密码生成器的文章就介绍到这了,更多相关Python密码生成器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python实现随机密码字典生成器示例

    本来想穷举所有密码,算法要么就嵌套太深,要么就特别耗内存(会溢出).后来选了一个简单重复概率很低的算法.代码如下: 复制代码 代码如下: # -*- coding:utf-8 -*-''' @ function: 生成随机密码字典'''import randomclass Dictor():    CSet=' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()_-+=/*<>:;\'&qu

  • python如何生成密码字典

    目录 一.密码字典 二.字典生成 1.生成6位数小写字母+数字密码字典 2.选择模式运行 一.密码字典 所谓密码字典,主要是配合解密使用,一般情况用来暴力破解密码,是由指定字符排列组合组成的文本文件.如果知道密码设置的规律指定性生成密码,会对破解密码有决定性的帮助!! 二.字典生成 1.生成6位数小写字母+数字密码字典 代码如下(示例): import itertools as its words = 'abcdefghijklmnopqrstuvwxyz1234567890'  #采用的字符

  • 基于python2.7实现图形密码生成器的实例代码

    具体代码如下所示: #coding:utf8 import random,wx def password(event): a = [chr(i) for i in range(97,123)] b = [chr(i) for i in range(65,91)] c = ['0','1','2','3','4','5','6','7','8','9'] d = ['!','@','#','$','%','^','&','*','(',')','=','_','+','/','?'] set1 =

  • python如何随机生成高强度密码

    本文实例为大家分享了python随机生成高强度密码的具体代码,供大家参考,具体内容如下 import random import re # 字母类型 englishChar = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'l', 'k', 'j', 'h', 'g', 'f', 'd', 's', 'a', 'z', 'x', 'c', 'v', 'b', 'n', 'm'] # 数字类型 numberChar = ['1', '2',

  • 用python写一个带有gui界面的密码生成器

    需要用到的库: tkinter:构建gui界面 pyperclip:复制功能 random:生成随机数 string:处理字符串 代码: from tkinter import * import random, string import pyperclip root =Tk() root.geometry("400x400") root.resizable(0,0) root.title("密码生成器") heading = Label(root, text =

  • python生成密码字典的方法

    这里我使用的是python27 主要用的是我之前博文里提到的itertools循环迭代的模块,用这个模块可以省不少事 首先要调用itertools import itertools as its 然后将字典需要的元素(或者说是关键字)赋给word变量 我们这里假设密码是纯数字,所以元素就是1234567890 即代码 words = "1234568790" 假设密码是4位,那么需要元素在迭代器中循环4次,即 r =its.product(words,repeat=4) 接着我们创建一

  • 详解如何利用Python制作24点小游戏

    目录 先睹为快 游戏规则(改编自维基百科) 逐步实现 Step1:制作24点生成器 Step2:定义游戏精灵类 Step3:实现游戏主循环 先睹为快 24点 游戏规则(改编自维基百科) 从1~10这十个数字中随机抽取4个数字(可重复),对这四个数运用加.减.乘.除和括号进行运算得出24.每个数字都必须使用一次,但不能重复使用. 逐步实现 Step1:制作24点生成器 既然是24点小游戏,当然要先定义一个24点游戏生成器啦.主要思路就是随机生成4个有解的数字,且范围在1~10之间,代码实现如下:

  • 详解如何用python实现一个简单下载器的服务端和客户端

    话不多说,先看代码: 客户端: import socket def main(): #creat: download_client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #link: serv_ip=input("please input server IP") serv_port=int(input(("please input server port"))) serv_addr=(serv_ip,ser

  • 详解如何用Python登录豆瓣并爬取影评

    目录 一.需求背景 二.功能描述 三.技术方案 四.登录豆瓣 1.分析豆瓣登录接口 2.代码实现登录豆瓣 3.保存会话状态 4.这个Session对象是我们常说的session吗? 五.爬取影评 1.分析豆瓣影评接口 2.爬取一条影评数据 3.影评内容提取 4.批量爬取 六.分析影评 1.使用结巴分词 七.总结 上一篇我们讲过Cookie相关的知识,了解到Cookie是为了交互式web而诞生的,它主要用于以下三个方面: 会话状态管理(如用户登录状态.购物车.游戏分数或其它需要记录的信息) 个性化

  • 详解如何用Python模拟登录淘宝

    目录 一.淘宝登录流程 二.模拟登录实现 1.判断是否需要验证码 2.验证用户名密码 3.申请st码 4.使用st码登录 5.获取淘宝昵称 三.总结 1.代码结构 2.存在问题 看了下网上有很多关于模拟登录淘宝,但是基本都是使用scrapy.pyppeteer.selenium等库来模拟登录,但是目前我们还没有讲到这些库,只讲了requests库,那我们今天就来使用requests库模拟登录淘宝! 讲模拟登录淘宝之前,我们来回顾一下之前用requests库模拟登录豆瓣和新浪微博的过程:这一类模拟

  • 详解如何使用Python隐藏图像中的数据

    目录 编码 例子 解码 程序执行 局限性 参考 隐写术是在任何文件中隐藏秘密数据的艺术. 秘密数据可以是任何格式的数据,如文本甚至文件.简而言之,隐写术的主要目的是隐藏任何文件(通常是图像.音频或视频)中的预期信息,而不实际改变文件的外观,即文件外观看起来和以前一样. 在这篇文章中,我们将重点学习基于图像的隐写术,即在图像中隐藏秘密数据. 但在深入研究之前,让我们先看看图像由什么组成: 1.像素是图像的组成部分. 2.每个像素包含三个值:(红色.绿色.蓝色)也称为 RGB 值. 3.每个 RGB

  • 详解如何利用Python绘制迷宫小游戏

    目录 构思 绘制迷宫 走出迷宫 完整代码 更大的挑战 关于坐标系设置 周末在家,儿子闹着要玩游戏,让玩吧,不利于健康,不让玩吧,扛不住他折腾,于是想,不如一起搞个小游戏玩玩! 之前给他编过猜数字 和 掷骰子 游戏,现在已经没有吸引力了,就对他说:“我们来玩个迷宫游戏吧.” 果不其然,有了兴趣,于是和他一起设计实现起来,现在一起看看我们是怎么做的吧,说不定也能成为一个陪娃神器~ 先一睹为快: 构思 迷宫游戏,相对比较简单,设置好地图,然后用递归算法来寻找出口,并将过程显示出来,增强趣味性. 不如想

  • 详解如何利用Python实现报表自动化

    目录 Excel的基本组成 一份自动化报表的流程 报表自动化实战 当日各项指标的同环比情况 当日各省份创建订单量情况 最近一段时间创建订单量趋势 将不同的结果进行合并 本篇文章将带你了解报表自动化的流程,并教你用Python实现工作中的一个报表自动化实战,篇幅较长,建议先收藏,文章具体的目录为: 1.Excel的基本组成 2.一份报表自动化的流程 3.报表自动化实战 - 当日各项指标同环比情况 - 当日各省份创建订单量情况 - 最近一段时间创建订单量趋势 4.将不同的结果进行合并 - 将不同结果

  • 详解Golang 与python中的字符串反转

    详解Golang 与python中的字符串反转 在go中,需要用rune来处理,因为涉及到中文或者一些字符ASCII编码大于255的. func main() { fmt.Println(reverse("Golang python")) } func reverse(src string) string { dst := []rune(src) len := len(dst) var result []rune result = make([]rune, 0) for i := le

  • 详解C++调用Python脚本中的函数的实例代码

    1.环境配置 安装完python后,把python的include和lib拷贝到自己的工程目录下 然后在工程中包括进去 2.例子 先写一个python的测试脚本,如下 这个脚本里面定义了两个函数Hello()和_add().我的脚本的文件名叫mytest.py C++代码: #include "stdafx.h" #include <stdlib.h> #include <iostream> #include "include\Python.h&quo

  • 使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是python自带的库,所以无需另外安装,直接 import 即可 编写核心代码 压缩文件核心代码: def zip_file(): zip_name = path.get() +'.zip' # 获取绝对路径然后给压缩文件加上.zip结尾 z = zipfile.ZipFile(zip_name,'

随机推荐