brute force methode verbessern?

Diskutiere brute force methode verbessern? im Allgemeine Java-Themen Bereich.
Scream_ilias

Scream_ilias

hallo leute
ich habe eine bruteforcemethode entwickelt die mir bisher nur eine max. länge von 5 buchstaben des passworts erlaubt.
ausserdem kann ich mit dieser methode nicht mehr als 28 buchstaben/zahlen benutzen.
hätte jmd ne ahnung wie ich die länge oder die anzahl der buchstaben erhöhen könnte?

Java:
import java.util.Arrays;

public class BruteForce
{
public static void main(String[] args)
{
String password = "ilias";
char[] charset = "abcdefghijklmnopqrstuvwxyz".toCharArray();
BruteForce bf = new BruteForce(charset, 2);

String attempt = bf.toString();
while (true)
{
if (attempt.equals(password))
{
System.out.println("Password Found: " + attempt);
break;
}
attempt = bf.toString();
System.out.println("" + attempt);
bf.increment();
}
}
private char[] cs;
private char[] cg;

public BruteForce(char[] characterSet, int guessLength)
{
cs = characterSet;
cg = new char[guessLength];
Arrays.fill(cg, cs[0]);
}

public void increment()
{
int index = cg.length - 1;
while(index >= 0)
{
if (cg[index] == cs[cs.length-1])
{
if (index == 0)
{
cg = new char[cg.length+1];
Arrays.fill(cg, cs[0]);
break;
}
else
{
cg[index] = cs[0];
index--;
}
}
else
{
cg[index] = cs[Arrays.binarySearch(cs, cg[index]) + 1];
break;
}
}
}

@Override
public String toString()
{
return String.valueOf(cg);
}
}
 
A

abc66

Poste deinen Code doch bitte formatiert.

Ins Ilias (z. B. der FH Aachen) einzubrechen, ist übrigens nicht erlaubt und wahrscheinlich steht der Versuch unter Strafe.... :oops:

Welche Passwortrichtlinien habt ihr? o_O
 
A

abc66

Ach so das konnte ich nicht wissen. Aber den Code könntest du doch bitte formatiert einfügen...
 
Scream_ilias

Scream_ilias

so habe es hingekriegt war doch einfacher als gedacht
wenn mir noch jmd helfen könnte die passwortlänge von 5 auf vielleicht 8 oder höher zu stellen wäre es cool!
Java:
import java.util.Arrays;

public class BruteForce
{
public static void main(String[] args)
{
String password = "Ilias";
char[] charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();
BruteForce bf = new BruteForce(charset, 1);

String attempt = bf.toString();
while (true)
{
if (attempt.equals(password))
{
System.out.println("Das Passwort lautet " + attempt);
break;
}
attempt = bf.toString();
System.out.println("" + attempt);
bf.increment();
}
}
private char[] cs; 
private char[] cg; 

public BruteForce(char[] characterSet, int guessLength)
{
cs = characterSet;
cg = new char[guessLength];
Arrays.fill(cg, cs[0]);
}

public void increment()
{
int index = cg.length - 1;
while(index >= 0)
{
if (cg[index] == cs[cs.length-1])
{
if (index == 0)
{
cg = new char[cg.length+1];
Arrays.fill(cg, cs[0]);
break;
}
else
{
cg[index] = cs[0];
index--;
}
}
else
{
cg[index] = cs[Arrays.binarySearch(cs, cg[index]) + 1];
break;
}
}
}

@Override
public String toString()
{
return String.valueOf(cg);
}
}
 
Zuletzt bearbeitet von einem Moderator:
A

abc66

Vorher:
Java:
class BruteForce {
	public static void main(String[] args) {
		String password = "Ilias";
		char[] charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();
		BruteForce bf = new BruteForce(charset, 1);

		String attempt = bf.toString();
		while (true) {
			if (attempt.equals(password)) {
				System.out.println("Das Passwort lautet " + attempt);
				break;
			}
			attempt = bf.toString();
			System.out.println("" + attempt);
			bf.increment();
		}
	}

	private char[] cs;
	private char[] cg;

	public BruteForce(char[] characterSet, int guessLength) {
		cs = characterSet;
		cg = new char[guessLength];
		Arrays.fill(cg, cs[0]);
	}

	public void increment() {
		int index = cg.length - 1;
		while (index >= 0) {
			if (cg[index] == cs[cs.length - 1]) {
				if (index == 0) {
					cg = new char[cg.length + 1];
					Arrays.fill(cg, cs[0]);
					break;
				} else {
					cg[index] = cs[0];
					index--;
				}
			} else {
				cg[index] = cs[Arrays.binarySearch(cs, cg[index]) + 1];
				break;
			}
		}
	}

	@Override
	public String toString() {
		return String.valueOf(cg);
	}
}
und hier etwas Magie:
Java:
class BruteForce {
	public static void main(String[] args) {
		String password = "ccc";
		char[] charset = "abc".toCharArray();
		while (true) {
			String n = n(charset, 3);
			if (password.equals(n)) {
				System.out.println("found: " + n);
				return;
			} else {
				System.out.println("not found: " + n);
			}
		}
	}

	static BigInteger i = BigInteger.ZERO;

	static String n(char[] charset, int n) {
		String rt = "";
		String string = i.toString(charset.length);
		i = i.add(BigInteger.ONE);
		for (int i = 0; i < n ; i++) {
			if (i < string.length())
				rt += charset[string.charAt(i) - '0'];
			else
				rt += charset[0];
		}
		return rt;
	}
}
 
Thema: 

brute force methode verbessern?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben