X报表系统的注册机

   前几天有人在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();

    }

}

你可能感兴趣的:(Security,Gmail)