Buenas, soy muy novato en Python pero he logrado crear un analizador de diccionarios para saber si es viable para ataques WPA y para saber el tipo de passwords que contiene, realmente no encontre uno por la red asi que pense que seria util. Son bienvenidos a mejorarlo y eficientizarlo si asi lo desean.
Espero sus opiniones y mejoras
from io import open
import string
grande=0
grande2=0
grande3=0
grande4=0
grande5=0
grande6=0
palabras=0
mayu=0
alfa=0
letras=0
signo=0
digit=0
peque=0
f = open("dic.txt","r",errors = 'ignore')
invalidChars = set(string.punctuation.replace("_", ""))
for line in f.readlines():
palabras+=1
if line[-1] == "\n":
line = line[:-1]
if len(line)<=7:
peque+=1
if len(line)== 8:
grande+=1
if len(line)== 9:
grande2+=1
if len(line)== 10:
grande3+=1
if len(line)== 11:
grande4+=1
if len(line)== 12:
grande5+=1
if len(line)> 12:
grande6+=1
if line.islower() == False:
mayu+=1
if line.isalpha() == True:
letras+=1
if line.isdigit() == True:
digit+=1
if (line.isdigit() == False) and (line.isalpha()) == False:
alfa+=1
if any(char in invalidChars for char in line):
signo+=1
print("ANALISIS DEL DICCIONARIO")
print("---------------------------------------")
print("Cantidad de Passwords-> ",palabras)
print("---------------------------------------")
print("Con menos de 8 caracteres-> {:.2f}".format((peque/palabras)*100),"%")
print("Con de 8 caracteres-> {:.2f}".format((grande/palabras)*100),"%")
print("Con de 9 caracteres-> {:.2f}".format((grande2/palabras)*100),"%")
print("Con de 10 caracteres-> {:.2f}".format((grande3/palabras)*100),"%")
print("Con de 11 caracteres-> {:.2f}".format((grande4/palabras)*100),"%")
print("Con de 12 caracteres-> {:.2f}".format((grande6/palabras)*100),"%")
print("Con mas de 12 caracteres-> {:.2f}".format((grande5/palabras)*100),"%")
print("---------------------------------------")
print("Solo letras-> {:.2f}".format((letras/palabras)*100),"%")
print("Solo numeros-> {:.2f}".format((digit/palabras)*100),"%")
print("Alfanumerico-> {:.2f}".format((alfa/palabras)*100),"%")
print("Con mayusculas-> {:.2f}".format((mayu/palabras)*100),"%")
print("Con signo-> {:.2f}".format((signo/palabras)*100),"%")
if ((peque/palabras)*100) > 20:
print("NOTA: DICIONARIO NO ES RECOMENDADO PARA ATAQUE WPA")
else:
print("NOTA: DICIONARIO PUEDE USARSE PARA ATAQUE WPA")
print("---------------------------------------")
print("FIN DEL ANALISIS")
f.close()
input("Press enter to exit ")
Link: https://mega.nz/#!MpBEHCiT!EIzlUBgYE9Jy_7zAVSZZY2mCZWggtK1eVYVaCMrxySo (https://mega.nz/#!MpBEHCiT!EIzlUBgYE9Jy_7zAVSZZY2mCZWggtK1eVYVaCMrxySo)
bueno yo tambien estoy empezando en py y por lo visto el diccionario tiene que estar en el mismo directorio con el nombre dic.txt para usar python y obtener los resultados en la misma shell.