求D6位随机数的刷机包(研究算法用)
本帖最后由 不败的米 于 2018-8-21 11:29 编辑附送5位和C6位算法
package ppma;
import java.security.MessageDigest;
public class pwd {
public static void main(String[] args){
System.out.print(args[0]+"\n"+args[1]+"\n");
System.out.print("5:"+gethashCode(args[0],args[1])+"\n");
String change = mark(args[0],args[1]);
System.out.print("C6:"+gethashCode(change,args[1])+"\n");
return;
}
private static int gethashCode(String mac,String rand){
String build = builder(mac,rand);
String md5 = MD5(build);
return Math.abs(md5.hashCode());
}
private static String mark(String mac,String salt){
char[] char_mac = mac.toCharArray();
char[] char_salt = salt.toCharArray();
int length_mac =char_mac.length;
int length_rand = char_salt.length;
char_mac1]=char_salt1];
int i=0,j=0;
while(i<length_mac&&j<length_rand){
if(char_mac==':') char_mac=char_salt;
i++;
}
returnString.copyValueOf(char_mac);
}
private static String builder(String mac,String salt){
return "open_ADB"+salt+"@"+ mac+"ZTE_ENCRYPT";
}
private static String MD5(String s) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(s.getBytes("utf-8"));
return toHex(bytes);
}
catch (Exception e) {
throw new RuntimeException(e);
}
}
private static String toHex(byte[] bytes) {
final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
StringBuilder ret = new StringBuilder(bytes.length * 2);
for (int i=0; i<bytes.length; i++) {
ret.append(HEX_DIGITS[(bytes >> 4) & 0x0f]);
ret.append(HEX_DIGITS & 0x0f]);
}
return ret.toString();
}
}
高手在当贝啊!学习了
页:
[1]