2017-02-16 9 views
-3

Я довольно новичок в python, и я попытался написать «cracker» (не совсем, просто программа, которая записывает все возможные комбинации).Пытался написать «взломщик» - OFC он не работает, но я думаю, что он может xD

Я использовал linecache, а затем только в цикле (слишком много).

Идея состояла в том, чтобы сделать словарь с Az и 0-9 символов, а затем с помощью linecache получить символы и положить их вместе

(Он работал с изменением только 2 символов, но когда я попытался 8 символов ...)

Как я новичок в Python я действительно не друг с intendation, но как-то я сделал это работать, нО ...

ПРОБЛЕМА эТО нИКОГДА нЕ ДЕЛАТЬ:

print("ITS HERE") 

................................................ ................................

import easygui 
import time 
import linecache 



x1=1 
x2=1 
x3=1 
x4=1 
x5=1 
x6=1 
x7=1 
x8=0 
p=0 

while p!=36: 
p=p+1 
while x1!=36: 
    while x2!=36: 
     while x3!=36: 
      while x4!=36: 
       while x5!=36: 
        while x6!=36: 
         while x7!=36: 

          while x8!=36: 
           x8=x8+1 

           Char1=linecache.getline("Dictionary.txt",x1).rstrip("\n") 
           Char2=linecache.getline("Dictionary.txt",x2).rstrip("\n") 
           Char3=linecache.getline("Dictionary.txt",x3).rstrip("\n") 
           Char4=linecache.getline("Dictionary.txt",x4).rstrip("\n") 
           Char5=linecache.getline("Dictionary.txt",x5).rstrip("\n") 
           Char6=linecache.getline("Dictionary.txt",x6).rstrip("\n") 
           Char7=linecache.getline("Dictionary.txt",x7).rstrip("\n") 
           Char8=linecache.getline("Dictionary.txt",x8).rstrip("\n") 
           print(Char1+Char2+Char3+Char4+Char5+Char6+Char7+Char8) 
           time.sleep(0.25) 


           if x2==36: 
            x1=x1+1 
            x2=0 
           if x3==36: 
            x2=x2+1 
            x3=0 
           if x4==36: 
            x3=x3+1 
            x4=0 


           if x5==36: 
            x4=x4+1 
            x5=0 
           if x6==36: 
            x5=x5+1 
            x6=0 
           if x7==36: 
            x6=x6+1 
            x7=0 
           if x8==36: 
            x7=x7+1 
            x8=0 






time.sleep (60000) 
+0

Если я что-то, 36 к 8-й степени, разделенной на четыре (0,25 секунд сна) хватает более 8000 тысяч лет для наихудшего сценария в. Тем не менее, 'x7' никогда не изменяется внутри' while x7! = 36: ', бесконечного цикла. Я рекомендую [официальный учебник Python] (https://docs.python.org/3.6/tutorial/index.html). – TigerhawkT3

+0

Как? Это выглядит хорошо для меня, и я смотрю на это через полдня, это должно было быть чудом или просто помочь кому-то более опытному, чем мне. – CandyKing

+1

Если вы действительно не хотите сделать это медленным и неэффективным, посмотрите на itertools.permutations. –

ответ

0

SO здесь рабочий код, если у вас есть тысячелетие времени определенно попробовать его XD

import easygui 
import time 
import linecache 



x1=1 
x2=1 
x3=1 
x4=1 
x5=1 
x6=1 
x7=1 
x8=1 


while x8!=36: 


    Char1=linecache.getline("AlgoDictionary.txt",x1).rstrip("\n") 
    Char2=linecache.getline("AlgoDictionary.txt",x2).rstrip("\n") 
    Char3=linecache.getline("AlgoDictionary.txt",x3).rstrip("\n") 
    Char4=linecache.getline("AlgoDictionary.txt",x4).rstrip("\n") 
    Char5=linecache.getline("AlgoDictionary.txt",x5).rstrip("\n") 
    Char6=linecache.getline("AlgoDictionary.txt",x6).rstrip("\n") 
    Char7=linecache.getline("AlgoDictionary.txt",x7).rstrip("\n") 
    Char8=linecache.getline("AlgoDictionary.txt",x8).rstrip("\n") 
    print(Char1+Char2+Char3+Char4+Char5+Char6+Char7+Char8) 
    time.sleep (0.1) 
    x8=x8+1        

    if x2==36: 
     x1=x1+1 
     x2=1 
    if x3==36: 
     x2=x2+1 
     x3=1 
    if x4==36: 
     x3=x3+1 
     x4=1 
    if x5==36: 
     x4=x4+1 
     x5=1 
    if x6==36: 
     x5=x5+1 
     x6=1 
    if x7==36: 
     x6=x6+1 
     x7=1 
    if x8==36: 
     x7=x7+1 
     x8=1 

 Смежные вопросы

  • Нет связанных вопросов^_^