Script de fuerza bruta en Python 3.2

Soy un principiante en escribir código y empecé con Python porque parecía el más limpio y fácil de comenzar (actualmente tengo Python 3.2). Ahora he leído algunos libros en línea, etc., sobre encoding en Python, he hecho algunos progtwigs pequeños y eso es todo.

Pero luego quise hacer un progtwig que pudiera forzar una contraseña aleatoria como:

PassWord = random.randint(0,9999) 

Hice algo que podría probar contraseñas aleatorias:

 import random PassWord = str(random.randint(0,9999)) Trial = ' ' while Trial != PassWord: Trial = str(random.randint(0,9999)) print(Trial) if Trial == PassWord: print('The password is: '+PassWord) input() 

Pero eso no es realmente un ataque de fuerza bruta, es más tratar de adivinar aleatoriamente una contraseña. Creo que un ataque de fuerza bruta es primero intentar todas las posibilidades con 1 dígito luego 2, 3 y así sucesivamente. Pero no tengo ni idea ni conocimiento de cómo hacer esto.

Realmente apreciaría si alguien dijera cómo crear un progtwig que primero verifique todas las posibilidades con 1 dígito y, si es posible, en el orden correcto (0,1,2,3 y así sucesivamente), luego 2,3 y 4 dígitos.

Entonces podría trabajar en ello y aprender más sobre Python.

Código primero:

 from itertools import product chars = '0123456789' # chars to look for for length in range(1, 3): # only do lengths of 1 + 2 to_attempt = product(chars, repeat=length) for attempt in to_attempt: print(''.join(attempt)) 

itertools.product produce una unión cartesiana de su (s) entrada (s) – en este caso, se está “uniendo” a sí mismo. Así que en la primera iteración, se imprime cada carácter individual. Luego, en la siguiente iteración, debido a la repeat=length (y la length ahora es == 2), se genera ’00’, ’01’, etc … Vale la pena intentarlo y ver el resultado para entenderlo mejor.

Esto también significa que puede agregar letras (mayúsculas / minúsculas) y cambiar el límite superior en la función de range .

Ciertamente, no va a romper el mundo del descifrado de códigos, pero debería darle una idea de la flexibilidad de Python y las herramientas disponibles para usted.

Te dejaré que compruebes las coincidencias de las contraseñas y rompas el ciclo.

Quieres algo como esto:

 PassWord = str(random.randint(0,9999))#example password for i in range(10000): #0-9999 Trial = str(i) if Trial == Password: print('Found password: ' + Password) 
 import random digits=list(range(0,1000)) password=random.randint(0,1000) eachdigit=-1 print(password) while eachdigit!=password: for eachdigit in digits: print(eachdigit) if eachdigit==password: print("Password is found:"+str(eachdigit)+"---------------------------") password=str(input("Enter new password if you wish")) 

Esto es lo que he hecho, es extremadamente ineficaz y está mal escrito. Actualmente estoy tratando de ponerlo en una función para que tenga cualquier longitud, pero solo tiene 4 atm. Utilicé una cadena de letras / números y la ejecuté en secuencia hasta que responda = contraseña:

 idea = ["a","b","c","d","e","1","2","3",.........] var = 0 answer = "" while answer != password: answer = idea[var] print(answer) var += 1 

Si valoras tus ojos, no mires abajo (advirtiéndote que está desordenado).

 
 password = input("pass:") #idea = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9"," "] #THE IDEA ABOVE IS THE FULL AZ, 0-9 (takes ages) password = input("pass:") idea = ["a","b","c","d"] awnser = [""] *6 var = 0 var1 = 0 var2 = 0 var3 = 0 char = 0 while awnser != password: awnser = idea[var] print(awnser) if var != len(idea): var += 1 if var == len(idea): var = 0 while awnser != password: awnser = idea[var]+idea[var1] print(awnser) if var != len(idea): var += 1 if var == len(idea): if var1 != len(idea): var = 0 var1 += 1 if var1 == len(idea): var = 0 var1 = 0 while awnser != password: awnser = idea[var]+idea[var1]+idea[var2] print(awnser) if var != len(idea): var += 1 if var == len(idea): if var1 != len(idea): var = 0 var1 += 1 if var1 == len(idea): if var2 != len(idea): var = 0 var1 = 0 var2 += 1 if var2 == len(idea): var = 0 var1 = 0 var2 = 0 while awnser != password: awnser = idea[var]+idea[var1]+idea[var2]+idea[var3] print(awnser) if var != len(idea): var += 1 if var == len(idea): if var1 != len(idea): var = 0 var1 += 1 if var1 == len(idea): if var2 != len(idea): var = 0 var1 = 0 var2 += 1 if var2 == len(idea): print("==============================================") print("Password too long or characters not in string!") print("==============================================") break print("==================") print("") input("Password = "+awnser)