Import java. security. MessageDigest;
Public class md5crack {
// MD5 password algorithm
// MD5 Algorithm
Public final static String MD5_orginal (String s ){
Char hexDigits [] = {0, 1, 2, 3, 4,
5, 6, 7, 8, 9,
A, B, C, D, E, F };
Try {
Byte [] btInput = s. getBytes ();
MessageDigest mdInst = MessageDigest. getInstance ("MD5 ");
MdInst. update (btInput );
Byte [] md = mdInst. digest ();
Int j = md. length;
Char str [] = new char [j * 2];
Int k = 0;
For (int I = 0; I <j; I ++ ){
Byte byte0 = md [I];
Str [k ++] = hexDigits [byte0 >>> 4 & 0xf];
Str [k ++] = hexDigits [byte0 & 0xf];
}
Return new String (str );
}
Catch (Exception e ){
// E. printStackTrace ();
Return null;
}
}
// Md5 algorithm after interference items are added
Public final static String MD5 (String s ){
String tmp1 = MD5_orginal (s); // encrypt s with md5
String tmp2 = MD5_orginal ("ldcmgs.com"); // encrypt ldcmgs.com
String r = new String ();
StringBuffer sb = new StringBuffer (100 );
For (int I = 0; I <32; I ++ ){
Sb. append (tmp1.charAt (I ));
Sb. append (tmp2.charAt (I ));
}
R = sb. toString ();
R = r. substring (7,32) + "X" + r. substring (33,56 );
Return r;
}
Public static void main (String args []) {
String name = "admin ";
System. out. println (MD5 (name ));
}
}