Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
Все понял, я балбес))). Можно ещё вопрос по расчету количества возможных паролей при например цифрах без 0 и букв английского алфавита большими.
def choose_symbols():
print("Подсчёт комбинаций\n")
x = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789')
return x
def check(mix):
numbers = input('Количество символов в слове: ')
if numbers == '0':
print("Ошибка! Введите целое число больше нуля!")
return check(mix)
elif numbers.isdigit():
print('Количество комбинаций:', len(mix)**int(numbers))
else:
print("Ошибка! Введите целое число больше нуля!")
return check(mix)
if __name__ == "__main__":
check(choose_symbols())
А как тут задать обязательное условие не менее одной цифры и буквы в верхнем регистре?Ну раз я сам заикнулся о варианте с сохранением в файл, то решил добавить эту функцию в программу. Теперь можно сгенерированные списки паролей сохранять.
Посмотреть вложение 22189Python:# -*- coding:utf -8 -*- #!/usr/bin/python3 __version__ = 'Version: 1.1' from tkinter import * import random import string from tkinter import filedialog as fd root = Tk() root.resizable(width=False, height=False) root.title("Генератор паролей " +str(__version__)) root.geometry("450x324+300+300") calculated_text = Text(root,height=14, width=50) def erase(): calculated_text.delete('1.0', END) chars = '+-/*!&$#?=@<>abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' def password(): for n in range(int(number_entry.get())): password ='' for i in range(int(length_entry.get())): password += random.choice(chars) calculated_text.insert(END, password + "\n") def savepass(): file_name = fd.asksaveasfilename(filetypes=(("TXT files", "*.txt"), ("All files", "*.*")),defaultextension='') f = open(file_name, 'w') s = calculated_text.get(1.0, END) f.write(s) f.close() display_button = Button(text="Сгенерить", command=password) erase_button = Button(text="Очистить", command=erase) save = Button(text="Сохранить", command=savepass) number_entry = Entry(width=10, justify=CENTER) length_entry = Entry(width=10, justify=CENTER) number_entry.insert(0, "8") length_entry.insert(0, "25") number_label = Label(text=" Количество паролей") length_label = Label(text=" Длина пароля") number_label.grid(row=0, column=0, sticky="w") length_label.grid(row=1, column=0, sticky="w") number_entry.grid(row=0,column=1, padx=1, pady=5) length_entry.grid(row=1,column=1, padx=1, pady=5) save.grid(row=3, column=2, padx=50, pady=5, sticky="w") display_button.grid(row=3, column=0, padx=30, pady=5, sticky="e") erase_button.grid(row=3, column=1, padx=30, pady=5, sticky="e") scrollb = Scrollbar(root, command=calculated_text.yview) scrollb.grid(row=4, column=3, sticky='nsew') calculated_text.grid(row=4, column=0, sticky='nsew', columnspan=3) calculated_text.configure(yscrollcommand=scrollb.set) root.mainloop()
Можно проверять регексом. Если не прошло - перегенерировать.А как тут задать обязательное условие не менее одной цифры и буквы в верхнем регистре?
не все пароли генерируются с использованием цифр и регистра.
Должно быть так:У меня это работает так:
количество паролей?
2
длина пароля?
5
*
*D
*DG
*DGv
*DGvf
w
we
we1
we1N
we1NZ
[Program finished]
Как убрать те, что короче пяти символов?
Обучение наступательной кибербезопасности в игровой форме. Начать игру!