2016-05-29 12 views
-5

私は現在、ウェブサイトのセキュリティをテストするためにペンテストと倫理ハッキングに慣れています。
文字列に格納されているBruteforceアルゴリズムの例がわかります。辞書アルゴリズムではなく、ブルートフォースアルゴリズムです。
たとえば、文字aを入力しようとします。その後、文字bを試し、次にcを試します。事前にありがとう:)例ブルートフォースアルゴリズム

答えて

2

私はこの問題のための独自のコンセプトを実際に思いつくべきだと思っていますが、私はあなたにこれを行うヒントを提供したいと思います。

免責事項:これは可能な限り怠惰で、最も遅く、最も汚いアプローチですが、それはその仕事を完了します。これを実際のシステムのために絶対に使用しないでください

Programm.cs

class Program 
{ 
    static void Main(string[] args) 
    { 
     Brutforce b = new Brutforce() 
     { 
      Alphabet = new []{'a', 'b', 'c', 'd'} 
     }; 
     ICollection<string> vals = b.Calculate(3); 
     foreach (var elem in vals) 
      Console.WriteLine(elem); 
     Console.ReadKey(); 
    } 
} 

Brutforce.cs

internal class Brutforce 
{ 
    public ICollection<char> Alphabet { get; set; } 

    private ICollection<string> _calculate(int lenght) 
    { 
     if (lenght <= 1) return Alphabet.Select(a => a + "").ToList(); 
     ICollection<string> sub = _calculate(lenght - 1); 
     return (from alpha in Alphabet from prior in sub select alpha + prior).ToList(); 
    } 

    public ICollection<string> Calculate(int lenght) 
    { 
     return Alphabet == null ? null : _calculate(lenght); 
    } 
} 
関連する問題