1. 程式人生 > >MyEclipse6.0.1註冊碼生成器(原始碼)

MyEclipse6.0.1註冊碼生成器(原始碼)

由於,上次MyEclipse的使用期已經到了,所以在網上尋遍了方法,可惜沒多大收穫,正在絕望之際,看到了如下程式碼,以用來生成序列號,在此貼上此段程式碼,方便大家,也方便自己以後使用:

import java.io.*;

public class Test {

  private static final String LL = "Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (

http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.";  
  public String getSerial(String userId, String licenseNum) {  
      java.util.Calendar cal = java.util.Calendar.getInstance();  
      cal.add(1, 3);  
      cal.add(6, -1);  
      java.text.NumberFormat nf = new java.text.DecimalFormat("000");  
      licenseNum = nf.format(Integer.valueOf(licenseNum));  
      String verTime = new StringBuilder("-").append(new java.text.  
              SimpleDateFormat("yyMMdd").format(cal.getTime())).append("0").  
                       toString();  
      String type = "YE3MP-";  
      String need = new StringBuilder(userId.substring(0, 1)).append(type).  
                    append("300").append(licenseNum).append(verTime).toString();  
          String dx = new StringBuilder(need).append(LL).append(userId).toString();  
          int suf = this.decode(dx);  
          String code = new StringBuilder(need).append(String.valueOf(suf)).  
                        toString();  
          return this.change(code);  
      }  
   
      private int decode(String s) {  
          int i;  
     char[] ac;  
          int j;  
          int k;  
          i = 0;  
          ac = s.toCharArray();  
          j = 0;  
          k = ac.length;  
          while (j < k) {  
              i = (31 * i) + ac[j];  
              j++;  
          }  
          return Math.abs(i);  
      }  
   
      private String change(String s) {  
          byte[] abyte0;  
          char[] ac;  
          int i;  
          int k;  
          int j;  
          abyte0 = s.getBytes();  
          ac = new char[s.length()];  
          i = 0;  
          k = abyte0.length;  
          while (i < k) {  
              j = abyte0[i];  
              if ((j >= 48) && (j <= 57)) {  
                  j = (((j - 48) + 5) % 10) + 48;  
              } else if ((j >= 65) && (j <= 90)) {  
                  j = (((j - 65) + 13) % 26) + 65;  
              } else if ((j >= 97) && (j <= 122)) {  
                  j = (((j - 97) + 13) % 26) + 97;  
              }  
              ac[i] = (char) j;  
              i++;  
          }  
          return String.valueOf(ac);  
      }  
   
      public Test() {  
          super();  
      }  
   
      public static void main(String[] args) {  
          try {  
              System.out.println("please input register name:");  
          BufferedReader reader = new BufferedReader(new InputStreamReader(  
                  System.in));  
          String userId = null;  
          userId = reader.readLine();  
          Test myeclipsegen = new Test();  
          String res = myeclipsegen.getSerial(userId, "20");  
          System.out.println("Serial:" + res);  
    reader.readLine();  
   } catch (IOException ex) {  
      }  
 }  
}