Wednesday, March 18, 2009

brute force attack....

pngen tau algoritma nyari password yg sederhana???
neh,,kita pake brute force...simpel tapi mang ga efisien ,,,abis musti dicoba satu-satu,,dari kombinasi tunggal ampe kombinasi pasword yg dipengenin,,,,
o ya ni algoritmanya,,pake java lho...

class BrutePass {

static int count = 0;

public static void main(String args[]) {

if (args.length <>

System.out.println("Usage: java BrutePass ");

return;

}

String pwd = args[0];

int maxlen = 10;

long start = System.currentTimeMillis();

char[] buff = new char[maxlen];

String found = "";

for (int w = 0; w <>

found = crack(w + 1, 0, buff, pwd);

if (found != null) {

break;

}

}

long end = System.currentTimeMillis();

System.out.println("Password ditemukan " + found + " dengan " + count + " percobaan dalam " + (end - start) + " ms.");

}

private static final String CHARS = "abcdefghijklmnopqrstuvwxyz";

private static final char[] CHARS_A = CHARS.toCharArray();

static boolean eq(char[] a, int al, char[] b, int bl) {

if (al != bl) {

return false;

}

for (int i = 0; i <>

if (a[i] != b[i]) {

return false;

}

}

return true;

}

public static String crack(int w, int pos, char[] p, String pwd) {

final char[] pb = pwd.toCharArray();

for (int i = 0; i <>

p[pos] = CHARS_A[i];

if (pos == w - 1) {

count++;

if (eq(pb, pb.length, p, pos + 1))

return new String(p, 0, pos + 1);

}

String ret = null;

if (pos <>

ret = crack(w, pos + 1, p, pwd);

if (ret != null)

return ret;

}

return null;

}


0 komentar: