随机密码项目 Python
Random passwords Project Python
所以我试图构建一个包含随机密码的项目。只剩下两件事了。我希望再次单击该按钮时将密码替换为新密码。
然后我希望密码位于 window 而不是终端中。
如果有人能告诉我完成该项目需要哪些功能,我不介意您是否还有关于该项目的任何其他说明。
我会把代码放在下面。 ⬇
from tkinter import *
import random
import string
# recourses&def
string.digits
string.ascii_letters
abc = random.choice(string.ascii_letters)
num = random.choice(string.digits)
pun = random.choice(string.punctuation)
abc2 = random.choice(string.ascii_letters)
num2 = random.choice(string.digits)
pun2 = random.choice(string.punctuation)
abc3 = random.choice(string.ascii_letters)
num3 = random.choice(string.digits)
pun3 = random.choice(string.punctuation)
abc4 = random.choice(string.ascii_letters)
num4 = random.choice(string.digits)
pun4 = random.choice(string.punctuation)
password = abc+num+pun+abc2+" "+num2+pun2+abc3+num3+" "+pun3+abc4+num4+pun4
def myclick():
print(password)
# window
window = Tk()
window.title("Random Passwords")
# the label
label = Label(window, text=" Welcome To Random Passwords")
label.config(font=("Ink Free", 50, "bold"))
label.config(fg="#fc0331")
label.config(bg="#03fce7")
label.pack()
# button
theButton = Button(window, text="Click here!",
padx=20, pady=5, command=myclick)
theButton.pack()
# mainloop
window.mainloop()
忽略逻辑和代码布局,这是一个简单的答案。
首先在 myclick()
之前声明您的 window 变量
第二次在 myclick() 中打包一个新标签,字符串参数为“text=password”
# window
window = Tk()
window.title("Random Passwords")
def myclick():
print(password)
passLabel = Label(window, text=password)
passLabel.config(font=("Ink Free", 50, "bold"))
passLabel.config(fg="#fc0331")
passLabel.config(bg="#03fce7")
passLabel.pack()
首先,我想说你的随机生成东西的代码非常有限(顺序总是一样的)。尝试将其放入函数中。制作一个包含有效字符的字符串。
def genPassword(count):
out = '' #output password
charsAvailable = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890!@#$%^&'
for s in range(count):
out += charsAvailable[random.randint(0, len(charsAvailable)-1) #grabs a random character from the string and adds it to the password
return out
上面的代码并不局限于某种模式。
现在要显示密码,您想在最初为空的按钮下方放置一个标签:
passwordDisplay = Label(window, text="")
并打包:passwordDisplay.pack()
.
之后,在 myClick 函数中,执行以下操作:
passwordDisplay.config(text=genPassword(30))
。每当点击按钮时,它应该生成一个 30 个字符长的密码,并显示它。
我对您的代码所做的更改:
我用 create_password
函数替换了 myclick
函数。然后,在 create_password
中,我创建了一个名为 my_tuple
的元组,其中包含密码字符的所有要求。我还创建了一个名为 my_list
的空列表。之后,我遍历 my_tuple
,从元组中的每个要求中生成一个随机字符,并将每个字符附加到 my_list
。然后,我将 my_list
转换为名为 password
的字符串,并将我创建的新标签的文本设置为 password
。该标签显示在名为 window2
的小 Toplevel
widget/window 上。修改代码:
from tkinter import *
import random
import string
# window
window = Tk()
window.title("Random Passwords")
password = ""
def create_password():
global password
my_tuple = (string.ascii_letters, string.digits, string.punctuation, string.ascii_letters, string.digits,
string.punctuation, string.ascii_letters, string.digits, string.punctuation, string.ascii_letters,
string.digits, string.punctuation)
my_list = []
for i in my_tuple:
my_list.append(random.choice(i))
password = "".join(my_list)
label2.config(text=password)
# window that displays the generated password
window2 = Toplevel(window)
window2.title("Password")
window2.geometry("20x20+450+300")
# the label
label = Label(window, text=" Welcome To Random Passwords", font=("Ink Free", 50, "bold"), fg="#fc0331", bg="#03fce7")
label.pack()
label2 = Label(window2, text="")
label2.pack()
# button
theButton = Button(window, text="Click here!",
padx=20, pady=5, command=create_password)
theButton.pack()
# mainloop
window.mainloop()
生成特定长度的随机字符串的最佳方法是
import string
import random
def genPass(len_):#here at len argument, it should be the len of password
printable = string.printable
pas = ""
for i in range(len_):
pas+=random.choice(printable)
return pas
然后再制作一个标签并在您的 myfuc
函数中
def myfunc(pas):
label_name.config(text=pas)
然后创建一个 lambda myfu = lambda:myfunc(getPass(10))
并将 myfu 变量作为按钮的命令传递。是的,而不是 getPass(10)
你可以用你想要的任何数字替换 10 甚至询问是否来自用户本身
所以我试图构建一个包含随机密码的项目。只剩下两件事了。我希望再次单击该按钮时将密码替换为新密码。 然后我希望密码位于 window 而不是终端中。 如果有人能告诉我完成该项目需要哪些功能,我不介意您是否还有关于该项目的任何其他说明。
我会把代码放在下面。 ⬇
from tkinter import *
import random
import string
# recourses&def
string.digits
string.ascii_letters
abc = random.choice(string.ascii_letters)
num = random.choice(string.digits)
pun = random.choice(string.punctuation)
abc2 = random.choice(string.ascii_letters)
num2 = random.choice(string.digits)
pun2 = random.choice(string.punctuation)
abc3 = random.choice(string.ascii_letters)
num3 = random.choice(string.digits)
pun3 = random.choice(string.punctuation)
abc4 = random.choice(string.ascii_letters)
num4 = random.choice(string.digits)
pun4 = random.choice(string.punctuation)
password = abc+num+pun+abc2+" "+num2+pun2+abc3+num3+" "+pun3+abc4+num4+pun4
def myclick():
print(password)
# window
window = Tk()
window.title("Random Passwords")
# the label
label = Label(window, text=" Welcome To Random Passwords")
label.config(font=("Ink Free", 50, "bold"))
label.config(fg="#fc0331")
label.config(bg="#03fce7")
label.pack()
# button
theButton = Button(window, text="Click here!",
padx=20, pady=5, command=myclick)
theButton.pack()
# mainloop
window.mainloop()
忽略逻辑和代码布局,这是一个简单的答案。
首先在 myclick()
之前声明您的 window 变量第二次在 myclick() 中打包一个新标签,字符串参数为“text=password”
# window window = Tk() window.title("Random Passwords") def myclick(): print(password) passLabel = Label(window, text=password) passLabel.config(font=("Ink Free", 50, "bold")) passLabel.config(fg="#fc0331") passLabel.config(bg="#03fce7") passLabel.pack()
首先,我想说你的随机生成东西的代码非常有限(顺序总是一样的)。尝试将其放入函数中。制作一个包含有效字符的字符串。
def genPassword(count):
out = '' #output password
charsAvailable = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890!@#$%^&'
for s in range(count):
out += charsAvailable[random.randint(0, len(charsAvailable)-1) #grabs a random character from the string and adds it to the password
return out
上面的代码并不局限于某种模式。
现在要显示密码,您想在最初为空的按钮下方放置一个标签:
passwordDisplay = Label(window, text="")
并打包:passwordDisplay.pack()
.
之后,在 myClick 函数中,执行以下操作:
passwordDisplay.config(text=genPassword(30))
。每当点击按钮时,它应该生成一个 30 个字符长的密码,并显示它。
我对您的代码所做的更改:
我用 create_password
函数替换了 myclick
函数。然后,在 create_password
中,我创建了一个名为 my_tuple
的元组,其中包含密码字符的所有要求。我还创建了一个名为 my_list
的空列表。之后,我遍历 my_tuple
,从元组中的每个要求中生成一个随机字符,并将每个字符附加到 my_list
。然后,我将 my_list
转换为名为 password
的字符串,并将我创建的新标签的文本设置为 password
。该标签显示在名为 window2
的小 Toplevel
widget/window 上。修改代码:
from tkinter import *
import random
import string
# window
window = Tk()
window.title("Random Passwords")
password = ""
def create_password():
global password
my_tuple = (string.ascii_letters, string.digits, string.punctuation, string.ascii_letters, string.digits,
string.punctuation, string.ascii_letters, string.digits, string.punctuation, string.ascii_letters,
string.digits, string.punctuation)
my_list = []
for i in my_tuple:
my_list.append(random.choice(i))
password = "".join(my_list)
label2.config(text=password)
# window that displays the generated password
window2 = Toplevel(window)
window2.title("Password")
window2.geometry("20x20+450+300")
# the label
label = Label(window, text=" Welcome To Random Passwords", font=("Ink Free", 50, "bold"), fg="#fc0331", bg="#03fce7")
label.pack()
label2 = Label(window2, text="")
label2.pack()
# button
theButton = Button(window, text="Click here!",
padx=20, pady=5, command=create_password)
theButton.pack()
# mainloop
window.mainloop()
生成特定长度的随机字符串的最佳方法是
import string
import random
def genPass(len_):#here at len argument, it should be the len of password
printable = string.printable
pas = ""
for i in range(len_):
pas+=random.choice(printable)
return pas
然后再制作一个标签并在您的 myfuc
函数中
def myfunc(pas):
label_name.config(text=pas)
然后创建一个 lambda myfu = lambda:myfunc(getPass(10))
并将 myfu 变量作为按钮的命令传递。是的,而不是 getPass(10)
你可以用你想要的任何数字替换 10 甚至询问是否来自用户本身