2

学術的な python プロジェクトにブルート フォースを使用する関数を作成しようとしています。パスワードを制限することができます。パスワードを渡したいと思います。関数は、パスワードが見つかるまで組み合わせを試行する一連の文字 (az、AZ、0-9) を反復処理します。これは非効率的であることはわかっているので、テストのためにパスワードの長さを 4 文字と仮定します。この関数の作成を開始するための助けをいただければ幸いです。

4

2 に答える 2

6
gen = itertools.combinations_with_replacement(characters,password_length) #1
for password in gen:                                                      #2 
    check_password(password)                                              #3

仕組みは次のとおりです。

  • 1 行目: ジェネレーターを作成します。中断した場所を記憶する機能のようなものです。詳細については、http: //getpython3.com/diveintopython3/generators.htmlを参照してください。この特定のジェネレーターは、指定された長さの指定された文字の可能なすべての組み合わせを調べます。
  • 2 行目: for ループの反復ごとに next(gen) が呼び出されます。これにより、次の値が得られます
  • 3行目:やるべきことをやる

たとえば、 ifcharacters = '01234567890'password_length = 2then の組み合わせでループが実行されます('0','0'), ('0','1'), ('0','2')...('0','9'),('1','0'),('1','1')...('9','9')

于 2012-11-19T20:47:15.780 に答える