"Brute-Force" String Code?

Badmaster

Mitglied
lo all,
bin atm auf der suche nach einem kleinen brute-force code der mir strings "ausgibt", sprich verschiedene möglichkeiten durchtestet.
bin rel. neu bei den oos, ein kleiner code schnippsel wäre also supernett.
der code sollte theoretisch einen string von unbegrenzten zeichen zurückgeben können! also nicht x schleifen und sonen riesen quellcode erzeugen... (falls das geht) (falls ich mich undeutlich ausgedrückt habe, ich sollte der funktion oder was auch immer eine min und/oder maxlength angeben können für die es alle möglichkeiten durchprobiert..)
so hoffe das war verständlich...

thnx in advance
Gruss Badmaster

*sichwiederindielektürevertief*
 
Wie währe es wenn du es selber
versuchst?
Und wenn du auf ein Spezifisches Problem dabei stösst dann wird dir gerne geholen.
 
tja bin leider ziemlich ratlos...
mir fällt nix ein ausser halt jede menge schleifen zu machen aber das wäre ziemlich sinnlos...
hmmm

Code:
string myString;
char[] myChars = new char[24];
char[0] = "a";
char[1] = "b";
char[2] = "c";
char[3] = "d";
[...]

for(int i=0;i<24;i++)
{
myString = char[i];
if(tryit(myString))
{
Console.WriteLine("String ist:" + myString);
exit; // richtiges gefunden
}

}
tryit wäre dann ne funktion ob überprüft ob der string nun stimmt...
wie aber mach ich das elegant? bitte helft mir :(

was mir fehtl ist irgendwie die idee für ein grundgerüst ...
 
Zuletzt bearbeitet:
Erinner dich mal an die ersten Mathestunden und betrachte den String wie eine Zahl, die aus vielen Ziffern zusammengesetzt ist.

"Wenn höchste Ziffer erreicht ist, dann erhöhe die Nächste um 1"
Falls jetzt alle deine Zeichen sequentiell vorkommen ists eine einfache Übung.
(in anderen Zahlensystemen rechnen funktioniert übrigens ähnlich, das könntest du auch noch mal brauchen)
 
Code:
function bfstring(int min_length,int max_length)
{
string myString;
string mytempString;
int pos = min_length;
int seq = 1;
char[] myChars = new char[24];
char[0] = "a";
char[1] = "b";
char[2] = "c";
char[3] = "d";
[...]
for(int i=0;i<24;i++)
{
if(pos>1)
{

if(mytempString.Length>=pos)
{
mytempString = mytempString.Substring(0,pos-1);
}


mytempString += char[i];
}
else
{
mytempString = char[i];
}

if(tryit(mytempString))
{
myString = mytempString;
Console.WriteLine("String ist:" + myString);
exit; // richtiges gefunden
}

if(i == 23)
{

if(pos>1 && seq < 24)
{
if(mytempString.Length>=pos)
{
mytempString = mytempString.Substring(0,pos-1);
}
mytempString += char[seq];
seq++;
i=-1;
}
else
{
if(seq==24)
{
pos++;
seq=1;
i=-1;
}
}


}



}





}
hmmmm ist das ein ansatz in die richtige richtung, oder habe ich grad einfach einen riesen mist gemacht und zeit verschwendet? ^^
 
:( :( :( :( :( :( :(
ich glaub ich verschwende so nur meine zeit...
Code:
using System;

class bfstring
{


static void Main()
{
int max_length = 6;
int min_length = 1;
string myString;
string mytempString = "a";
int pos = min_length;
int seq = 0;
string[] myChars = new string[26];
myChars[0] = "a";
myChars[1] = "b";
myChars[2] = "c";
myChars[3] = "d";
myChars[4] = "e";
myChars[5] = "f";
myChars[6] = "g";
myChars[7] = "h";
myChars[8] = "i";
myChars[9] = "j";
myChars[10] = "k";
myChars[11] = "l";
myChars[12] = "m";
myChars[13] = "n";
myChars[14] = "o";
myChars[15] = "p";
myChars[16] = "q";
myChars[17] = "r";
myChars[18] = "s";
myChars[19] = "t";
myChars[20] = "u";
myChars[21] = "v";
myChars[22] = "w";
myChars[23] = "x";
myChars[24] = "y";
myChars[25] = "z";



for(int i=0;i<27;i++)
{

if(i == 26)
{
if(pos>1 && seq < 26)
{
if(mytempString.Length>=pos-1)
{
mytempString = mytempString.Substring(0,pos-2);
}
mytempString += myChars[seq];
seq++;
i=0;
}
else
{
if(seq==26)
{
pos++;
seq=1;
i=0;
}
else
{
if(mytempString.Length>=pos-1)
{
mytempString = mytempString.Substring(0,pos-1);
}
mytempString += myChars[seq];
seq++;
i=0;
pos++;
seq=1;
i=0;
}
}


}//if i==25 zu



if(pos<=1)
{
mytempString = myChars[i];
}
else
{
if(mytempString.Length>=pos)
{
mytempString = mytempString.Substring(0,pos-1);
}


mytempString += myChars[i];
}


//if(tryit(mytempString))
//{
//myString = mytempString;
//Console.WriteLine("String ist:" + myString);
//exit; // richtiges gefunden
//}









if(pos>=max_length)
{
break;
}
else
{
Console.WriteLine("String:"+mytempString);
}


}//for schleife ende





}
}
das ändert jeweils aber nur die beiden letzten ziffern....
wie schon gesagt ein konkretes beispiel... BITTE!
.
 

Neue Beiträge

Zurück