es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo excluir caracteres específicos de un generador de contraseñas basado en lo que el usuario introduce en una casilla de “caracteres excluidos”?

Estoy tratando de crear un generador de contraseñas con una interfaz de usuario muy simple. Quiero proporcionar a la UE la capacidad de excluir caracteres si es necesario. Cualquier ayuda sería muy apreciada.

Esto es lo que tengo hasta ahora que está lanzando “TypeError: can only concatenate str (not “int”) to str” y no puedo entender por qué…

import os, random, string
from tkinter import *

Generación de contraseñas basada en letras, dígitos y puntuación ASCII. 

def genpassword(longitudcontraseña):
    caracteresiniciales = string.asciiletters + string.digits + string.punctuation
    caracteres = []
    for char in caracteresiniciales:
        if char not in excludedchars:
            caracteres += char
    else:
        print('Caracteres excluidos: ' + char)

# Inicializar la contraseña con una semilla aleatoria
random.seed = (os.urandom(1024))
random_str = ''.join(random.choice(caracteres) for _ in range(longitud_contraseña))
return random_str


Esto actualizará la longitud de la contraseña que generamos en función del número de entrada que se introduzca. 

def actualizarcontraseña():
    try:
        cuenta_caracteres = int(pass_len.get())
    except ValueError:
        return

pass_box.config(state=NORMAL)
pass_box.delete(0, 'end')
pass_box.insert(0, gen_password(count_chars))
pass_box.config(state=NORMAL)


ventanaPrincipal = Tk()
ventanaPrincipal.title('Generador de Contraseñas Griffin 2.0')
ventanaPrincipal.resizable(0,0)

marco = Frame(ventanaPrincipal)

frame.pack(side=TOP, pady=10, padx=10, fill=X, expand=1)
Label(marco, text="Longitud de la Contraseña: ", anchor=E).grid(row=0, column=0, sticky=E)
valor_predeterminado = 16
longitudcontraseña = Entry(marco)
longitudcontraseña.insert(0, valor_predeterminado)
pass_len.grid(row=0, column=1)

Label(marco, text="Caracteres Excluidos: ", anchor=E).grid(row=1, column=0, sticky=E)
exclusiones_predeterminadas = ''
excludedchars = Entry(marco)
excludedchars.insert(0, exclusiones_predeterminadas)
excluded_chars.grid(row=1, column=1)

btn = Button(marco, text="Generar Contraseña")
btn['command'] = lambda: update_password()
btn.grid(row=0, column=2, rowspan=2, padx=10, ipadx=10)

Label(marco, text="Contraseña Generada: ", anchor=E).grid(row=2, column=0, sticky=E)
passbox = Entry(marco)
passbox.grid(row=2, column=1)

update_password()

Abrir ventana principal

ventanaPrincipal.mainloop()
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en la línea characters += char – no puedes agregar un carácter a una lista usando el operador +=. En su lugar, deberías usar characters.append(char).

Comments are closed.