54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
|
"""
|
||
|
Random Password Generator
|
||
|
=========================
|
||
|
Genera una contraseña aleatoria con el número
|
||
|
de palabras que indiques a partir de un archivo
|
||
|
de palabras de Linux ubicado en la mayoría
|
||
|
de las distribuciones en /usr/share/dict/words
|
||
|
|
||
|
Despues, pregunta al usuario si desea mezclar
|
||
|
las letras de la contraseña generada.
|
||
|
"""
|
||
|
import random
|
||
|
|
||
|
# Ruta al archivo de palabras en Linux (puede variar según la distribución)
|
||
|
word_file = '/usr/share/dict/words'
|
||
|
|
||
|
# Función para generar una contraseña aleatoria
|
||
|
|
||
|
|
||
|
def generate_password(word_file, num_words):
|
||
|
with open(word_file, 'r') as file:
|
||
|
words = [line.strip() for line in file.readlines()]
|
||
|
|
||
|
# Seleccionar un número de palabras al azar
|
||
|
password_words = random.sample(words, num_words)
|
||
|
|
||
|
# Combinar las palabras para formar la contraseña
|
||
|
password = ''.join(password_words)
|
||
|
|
||
|
return password
|
||
|
|
||
|
# Función para mezclar las letras de una cadena
|
||
|
|
||
|
|
||
|
def shuffle_letters(input_string):
|
||
|
letters = list(input_string)
|
||
|
random.shuffle(letters)
|
||
|
return ''.join(letters)
|
||
|
|
||
|
|
||
|
# Preguntar al usuario cuántas palabras desea en la contraseña
|
||
|
num_words = int(input("Número de palabras para la contraseña: "))
|
||
|
|
||
|
# Generar una contraseña aleatoria con el número de palabras especificado
|
||
|
random_password = generate_password(word_file, num_words)
|
||
|
print("Contraseña aleatoria generada:", random_password)
|
||
|
|
||
|
# Preguntar al usuario si desea mezclar las letras
|
||
|
mezclar_letras = input(
|
||
|
"¿Desea mezclar las letras de la contraseña? (s/n): ").lower()
|
||
|
if mezclar_letras == 's':
|
||
|
random_password = shuffle_letters(random_password)
|
||
|
print("Contraseña con letras mezcladas:", random_password)
|