JBuilder7,8,9 30天临时序列号,Key生成算法
jbuilder7,8,9 30天临时序列号,key生成算法:
import java.util.*;
class keymaker {
public keymaker() {
}
public void generate() {
int serial[] = new int[20];
int key[] = new int[6];
string mapstring = "abc2de34fghjkm5npqrst6u7vwx8yz?9";
stringbuffer serialbuffer = new stringbuffer();
stringbuffer keybuffer = new stringbuffer();
random random = new random();
for(int k1 = 0; k1 < serial.length; k1++)
serial[k1] = 0;
serial[0] = random.nextint(mapstring.length()) & 0xfd;
serial[1] = random.nextint(mapstring.length()) & 0xfc;
serial[2] = random.nextint(mapstring.length()) & 0xf8;
serial[3] = random.nextint(mapstring.length()) & 0xef;
serial[4] = random.nextint(mapstring.length()) & 0xf7;
serial[5] = random.nextint(mapstring.length()) & 0xf7;
serial[6] = random.nextint(mapstring.length()) & 0xfd;
serial[7] = random.nextint(mapstring.length()) & 0xfd | 0x4;
serial[8] = random.nextint(mapstring.length()) & 0xfe;
serial[9] = random.nextint(mapstring.length()) & 0xef;
serial[10] = random.nextint(mapstring.length());
serial[11] = random.nextint(mapstring.length());
serial[12] = random.nextint(mapstring.length());
serial[13] = random.nextint(mapstring.length());
serial[14] = random.nextint(mapstring.length());
serial[15] = random.nextint(mapstring.length()) & 0xf3;
serial[16] = random.nextint(mapstring.length()) & 0xee;
serial[17] = random.nextint(mapstring.length());
serial[18] = random.nextint(mapstring.length()) & 0xf3;
serial[19] = random.nextint(mapstring.length());
for(int i = 0; i < serial.length; i++) {
if(i == 4 || i == 10 || i == 16) {
serialbuffer.append(-);
}
serialbuffer.append(mapstring.charat(serial[i]));
}
int keyflag = getkeyflag(serial);
for(int i = 0; i < 6; i++) {
key[i] = keyflag >> i * 5 & 0x1f;
}
for(int i = 0; i < key.length; i++) {
if(i == 3) {
keybuffer.append(-);
}
keybuffer.append(mapstring.charat(key[i]));
}
system.out.println("serial no:" + serialbuffer.tostring());
system.out.println("key no:" + keybuffer.tostring());
}
int getkeyflag(int serial[]) {
int i = -1187331284;
for (int j = 0; j < serial.length; j++) {
int k = serial[j];
serial[j] ^= (byte)(i >> 27 & 31);
i ^= k;
i ^= i << 5;
i ^= i << 10;
i ^= i << 15;
i ^= i << 20;
i ^= i << 25;
i ^= i << 30;
}
return i;
}
public static void main(string[] args) {
keymaker maker = new keymaker();
maker.generate();
}
}
试用时注意保存当前系统documents and settings/当前用户/.borland/borland.lic文件。先作改名备份,启动jbuider,
输入serial number和key,选择web page注册方式即可。恢复时改回备份的borland.lic文件。
可能对部分jbuilder版本无效。
推荐阅读


讨论区