1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import random import string def generate_password(length=10, non_alphanumeric_count=3): # Generar caracteres alfanuméricos letters_and_digits = string.ascii_letters + string.digits password = ''.join(random.choice(letters_and_digits) for _ in range(length - non_alphanumeric_count)) # Generar caracteres no alfanuméricos special_characters = string.punctuation password += ''.join(random.choice(special_characters) for _ in range(non_alphanumeric_count)) # Mezclar el password para asegurar aleatoriedad password = list(password) random.shuffle(password) return ''.join(password) # Generar una contraseña con 10 caracteres, 3 de los cuales no son alfanuméricos password = generate_password(10, 3) print(password) |
Explicación:
length=10
: Especifica la longitud total de la contraseña.non_alphanumeric_count=3
: Define cuántos caracteres no alfanuméricos (como!
,@
,#
, etc.) deben incluirse en la contraseña.letters_and_digits
: Contiene todas las letras (mayúsculas y minúsculas) y dígitos.special_characters
: Contiene los caracteres especiales de puntuación.random.shuffle
: Reorganiza la contraseña para asegurar que los caracteres especiales estén mezclados aleatoriamente con los alfanuméricos.