シンプルで実用的なMyeclipseレジストリコードプログラム


このプログラムを自分のeclipseにインポートしてMainメソッドを実行すれば、後でネット上で登録コードを探す手間を省くことができます.
import java.io.BufferedReader;    
import java.io.IOException;    
import java.io.InputStreamReader;    

public class MyEclipseGen {    
 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 MyEclipseGen() {    
  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();    
   MyEclipseGen myeclipsegen = new MyEclipseGen();    
   String res = myeclipsegen.getSerial(userId, "5");    
   System.out.println("Serial:" + res);    
   reader.readLine();    
  } catch (IOException ex) {    
  }    
 }    
}