2011-09-15 12 views
-1

私はこの種のツールを自分では好きではありませんが、pplはbrute forceでパスワードを解読するのに最も速いと言いますが、私の関心はパスワードを解読することではありません。 "AA、AB、AC、...... ZA"のようなブルー​​トフォースデータを生成するアルゴリズムですが、ソースでそれを見つけることはできないようです。ソースでそれを探しますか?John The Ripperのコードの一部を指し示す必要があります

または誰かが、指定された文字セットに従ってこれらの文字列を生成するための優れた高速アルゴリズムを知っている場合は、 のように

char *charset1 = "abcdefghijklmnopqrstuvwxyz"; 
    char *charset1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
    char *charset1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ........ 

ありがとう。

答えて

1

問題を解決してください。

  1. すべて一つの文字が文字列の生成 - Z
  2. すべて2つの文字列のAAを生成 - ZZ
  3. は、すべての3つの文字列AAAを生成 - ZZZ
  4. など

今すぐ治療を検討、例えばベース26のすべての可能な3桁の数字(またはあなたのキャラクタセットには多くの文字があります)を印刷する際の問題として、AAA - ZZZを使用しています。リッパーは別のテクニックを使用して、

パスワード
パスワード
PASSW0RD
PASSW0RD
など

ETA:ここに2文字バージョンのAA - ZZのサンプルコードです。私のCは非常に錆びているので、この断片はJavaである:

// Character set 
String charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
int cSetSize = charset.length(); 

// Two character strings AA - ZZ 
int numChars = 2; 
int limit = cSetSize * cSetSize; 
char[] result = new char[numChars]; 

// Build strings 
for (int i = 0; i < limit; ++i) { 

    // Convert i to base cSetSize 
    int current = i; 
    for (int j = numChars - 1; j >= 0; --j) { 
     result[j] = charset.charAt(current % cSetSize); 
     current /= cSetSize; 
    } 

    // Do something with string 
    System.out.println(new String(result)); 
} 
+0

しかし、Dictionary techとは別に、それもブルートフォースを使用して、私は思う。私は自分の文章を書いていましたが、if文とループがたくさん含まれていましたので、私はそれを読んで最も速く見つけることができるかどうかを尋ねていました。 – killercode

+0

@killercode: forループ。インデックスをn = 26,36,52,62などの基数に変換します。 – rossum

+0

サンプルや何かありますか? – killercode

関連する問題