前几天有人在blogjava上发表了一篇批价各个报表系统的文章,大为推荐这个系统。于是本人下载试用,结果很让人失望,它的功能还不如免费的iReport。保护和它的功能一样差,顺手把注册机写出来,因为我想有一些和我一样的人——试用也喜欢那种没有限制的。至于这个系统的名称,大家自己去找。
import java.security.MessageDigest;
public class keygen {
public static void main(String[] args)
{
System.out.println(checkKey("dectestgalaxyp@gmail.com"));
//dec 用户名 test 项目名 后面的是邮箱
}
private static String checkKey(String name)
{
byte nameBytes[];
StringBuffer theKey;
if(name == null)
return "null";
nameBytes = name.getBytes();
theKey = new StringBuffer();
byte td[];
try{
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(nameBytes);
td = md.digest();
if(td.length != 16)
return "null";
int n;
for(int i = 2; i <= 5; i++)
{
n = td[i] & 0xff;
theKey.append((char)(n % 25 + 65));
}
theKey.append("-");
for(int i = 7; i <= 11; i++)
{
n = td[i] & 0xff;
if(i == 9)
theKey.append(Integer.toHexString(n % 16));
else
theKey.append(n % 10);
}
theKey.append("-");
n = td[15] & 0xff;
theKey.append((char)(n % 25 + 65));
for(int i = 14; i >= 12; i--)
{
n = td[i] & 0xff;
theKey.append(n % 10);
}
for(int i = 6; i >= 3; i--)
{
n = td[i] & 0xff;
theKey.append(Integer.toHexString(n % 16));
}
theKey.append("-");
for(int i = 4; i >= 1; i--)
{
n = td[i] & 0xff;
theKey.append(n % 10);
}
}catch(Exception e)
{}
return theKey.toString();
}
}