序列号

来源:互联网 发布:太湖水利设计院知乎 编辑:程序博客网 时间:2024/04/18 14:57
************************************************************************************************
 *     在Myeclipse中建立一个Java project,然后建立一个java类文件,将下面代码复制进去,然后运行,随
 *  便输入一个Subscriber,然后按回车键,即可生成Subscription code。
 ************************************************************************************************

import java.io.*;   
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.";//定义一个String字符串   
   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, "20");   
           System.out.println("Serial:" + res); //输出序列号信息  
           reader.readLine();   
       catch (IOException ex) {   
        
       }   
   }   
}
0 0
原创粉丝点击