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*******")
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("")
print("SU CONTRASEÑA: ",contra)
print("")
conti=ns(input("¿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
Comentarios sobre la versión: 1.0 (1)