5

私はコードを書く初心者で、Python を使い始めました。Python が最もきちんとしていて、最も簡単に始められると思われたからです (現在 Python 3.2 を使用しています)。今、私はPythonでのコーディングについていくつかのオンライン本などを読みました.私はいくつかの小さなプログラムを作成しました.それだけです.

しかし、次のようなランダムなパスワードをブルート フォースできるプログラムを作りたいと思いました。

PassWord = random.randint(0,9999)

ランダムなパスワードを試すことができるものを作成しました:

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()

しかし、これはブルート フォース攻撃ではなく、ランダムにパスワードを推測しようとするものです。ブルートフォース攻撃は、最初に 1 桁ですべての可能性を試し、次に 2 桁、3 桁などを試すことだと思います。しかし、私にはこれを行う方法の手がかりも知識もありません。

最初に 1 桁ですべての可能性をチェックし、可能であれば正しい順序 (0、1、2、3 など) で、次に 2、3、4 桁でチェックするプログラムの作成方法を誰かが教えてくれると本当にありがたいです。

それから私はそれを回避し、Python についてもっと学ぶことができました。

4

5 に答える 5

17

最初のコード:

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入力のデカルト結合を生成します - この場合、それ自体に「結合」されています。したがって、最初の繰り返しでは、各文字が印刷されます。次に、次の反復で、repeat=length(and lengthis now == 2) により、'00'、'01' などが生成されます。それを試して、出力を見て理解を深める価値があります。

これは、文字 (大文字/小文字) を挿入して、range関数の上限を変更できることも意味します。

コード ブレークの世界を壊すわけではありませんが、Python の柔軟性と利用可能なツールについてのアイデアを提供するはずです。

パスワードの一致を確認してループを抜け出すのはあなたに任せます。

于 2012-07-06T18:40:45.763 に答える
2

次のようなものが必要です。

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) 
于 2012-07-06T18:17:08.130 に答える
-2

これは私がやったことです。非常に効果がなく、書き方も悪いです。現在、関数に入れようとしているので、任意の長さになりますが、4気圧しかできません。文字/数字の文字列を使用し、answer = password になるまで順番に実行しました。

idea = ["a","b","c","d","e","1","2","3",.........]
var = 0
answer = ""

while answer != password:
     answer = idea[var]
     print(answer)
     var += 1

あなたの目を大切にしているなら、下を見ないでください(それは面倒です)。

<pre><code>
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 A-Z, 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)



</code></pre>
于 2016-10-07T18:32:04.613 に答える