Generador_de_contraseñas



Buenos días a todos, en esta semana, he estado programando un generador de contraseñas seguras, porque muchas veces, la gente, pone de contraseñas como el nombre de su gato. Por ello, siempre viene bien tener un generador de contraseñas seguras y que sea de fiar. ATENCIÓN: NUNCA USES UN GENERADOR DE CONTRASEÑAS QUE NO SEA DE FIAR, POR QUE PUEDEN PROBAR A ENTRAR EN TUS CUENTAS CON LAS CONTRASEÑAS GENERADAS. Por ello aquí te enseñamos a hacer uno tú mismo con solo 54 líneas de código.
Lo que necesitaremos para este proyecto, será:
-          Python 3.8.2
-          Sys
-          Subprocess
-          String
-          Random

Generador_de_contraseñas.py
   _________________________________________________________________________________
Lo primero que haremos, será abrir nuestro editor de python, e invocar los módulos:

import random
import string
import sys
import subprocess

     Una vez hecho lo anterior, crearemos las definiciones:

def ns(r):
    while r!="n" and r!="s":
        r=input("Escriba solo \'n\' o \'s\' según su opción: ")
    return r

def OKI(n):
    try:
        n=int(n)
    except:
        n=OKI(input("Caracter no valido: "))
    return n

def opt(o,l):
    while o not in l:
        o=input("Escriba solo una de las opciones posibles: ")
    return o

ops=sys.platform

Ahora, deberemos crear la interfaz que nos pregunte cosas, para ello debemos introducir el nombre del proyecto para mostrar* siempre utilizando bucles while.
*En caso de que no queramos mostrar el nombre del proyecto, podemos omitir la línea 2.

while True:
    print("*******GENERADOR DE CONTRASEÑAS*******POR INFINITO PYTHON*******")
    minus=OKI(input("Indique número mínimo de minusculas: "))
    mayus=OKI(input("Indique número mínimo de mayusculas: "))
    numeros=OKI(input("Indique número mínimo de caracteres numéricos: "))
    longitud=OKI(input("Indique longitud de la contraseña: "))
    suma=minus+mayus+numeros #SUMA DE MINIMOS
    while longitud<suma: #COMPROBACION ADECUACIÓN DE LA "longitud".
        longitud=OKI(input("Longitud inadecuada: "))
    caract=string.ascii_letters+string.digits
    while True:
        contra=("").join(random.choice(caract)for i in range(longitud))
        if(sum(c.islower() for c in contra)>=minus
            and sum(c.isupper() for c in contra)>=mayus
            and sum(c.isdigit() for c in contra)>=numeros):
            break
        
    print("\nSU CONTRASEÑA: ",contra)
    
Una vez creada la interfaz, podemos hacer otra pregunta que se ejecute después de darnos la contraseña aleatoria para poder volver a utilizar el código de nuevo sin tener que cerrar el programa.

    conti=ns(input("\n¿Deseas repetir?(s/n): "))
    if conti==("n"):
        break
    if ops=="win32" or ops=="linux2":
        if ops=="win32":
            import subprocess
            subprocess.call(["cmd.exe","/C","cls"])
        else:
            os.system("clear")
    else:
        continue

Código final:

Generador_de_contraseñas.py
   _________________________________________________________________________________

import random
import string
import sys
import subprocess

def ns(r):
    while r!="n" and r!="s":
        r=input("Escriba solo \'n\' o \'s\' según su opción: ")
    return r

def OKI(n):
    try:
        n=int(n)
    except:
        n=OKI(input("Caracter no valido: "))
    return n

def opt(o,l):
    while o not in l:
        o=input("Escriba solo una de las opciónes posibles: ")
    return o

ops=sys.platform

while True:
    print("*******GENERADOR DE CONTRASEÑAS*******POR INFINITO PYTHON*******")
    minus=OKI(input("Indique número mínimo de minusculas: "))
    mayus=OKI(input("Indique número mínimo de mayusculas: "))
    numeros=OKI(input("Indique número mínimo de caracteres numéricos: "))
    longitud=OKI(input("Indique longitud de la contraseña: "))
    suma=minus+mayus+numeros #SUMA DE MINIMOS
    while longitud<suma: #COMPROBACION ADECUACIÓN DE LA "longitud".
        longitud=OKI(input("Longitud inadecuada: "))
    caract=string.ascii_letters+string.digits
    while True:
        contra=("").join(random.choice(caract)for i in range(longitud))
        if(sum(c.islower() for c in contra)>=minus
            and sum(c.isupper() for c in contra)>=mayus
            and sum(c.isdigit() for c in contra)>=numeros):
            break
        
    print("\nSU CONTRASEÑA: ",contra)
    
    conti=ns(input("\n¿Desea continuar?(s/n): "))
    if conti==("n"):
        break
    if ops=="win32" or ops=="linux2":
        if ops=="win32":
            import subprocess
            subprocess.call(["cmd.exe","/C","cls"])
        else:
            os.system("clear")
    else:
        continue


ARCHIVOS
   _________________________________________________________________________________
ARCHIVO PYTHON -------------------->  Generador_de_contraseñas.py

ARCHIVO EXE--------------------------->  Generador_de_contraseñas.exe
  INSTRUCCIONES ARCHIVO .EXE
  _________________________________________________________________________________

    Debes descargar el archivo zip, extraerlo y luego abrir la carpeta Generador_contraseñas 
    y ejecutar el archivo Generador_contraseñas.exe

Comentarios