Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2316417
  • 博文数量: 252
  • 博客积分: 5472
  • 博客等级: 大校
  • 技术积分: 3107
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-17 18:39
文章分类

全部博文(252)

文章存档

2012年(96)

2011年(156)

分类: Java

2011-11-11 08:52:37

  1. import java.io.*;
  2.   
  3. public class name {
  4.     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 (). 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.";
  5.     public String getSerial(String userId, String licenseNum) {
  6.        java.util.Calendar cal = java.util.Calendar.getInstance();
  7.         cal.add(1, 3);
  8.         cal.add(6, -1);
  9.         java.text.NumberFormat nf = new java.text.DecimalFormat("000");
  10.        licenseNum = nf.format(Integer.valueOf(licenseNum));
  11.         String verTime = new StringBuilder("-").append(new java.text.
  12.                 SimpleDateFormat("yyMMdd").format(cal.getTime())).append("0").
  13.                          toString();
  14.         String type = "YE3MP-";
  15.         String need = new StringBuilder(userId.substring(0, 1)).append(type).
  16.                       append("300").append(licenseNum).append(verTime).toString();
  17.         String dx = new StringBuilder(need).append(LL).append(userId).toString();
  18.         int suf = this.decode(dx);
  19.         String code = new StringBuilder(need).append(String.valueOf(suf)).
  20.                       toString();
  21.         return this.change(code);
  22.     }

  23.     private int decode(String s) {
  24.         int i;
  25.         char[] ac;
  26.         int j;
  27.         int k;
  28.         i = 0;
  29.        ac = s.toCharArray();
  30.         j = 0;
  31.         k = ac.length;
  32.         while (j < k) {
  33.             i = (31 * i) + ac[j];
  34.             j++;
  35.         }
  36.        return Math.abs(i);
  37.     }
  38.   
  39.     private String change(String s) {
  40.         byte[] abyte0;
  41.         char[] ac;
  42.         int i;
  43.         int k;
  44.         int j;
  45.         abyte0 = s.getBytes();
  46.         ac = new char[s.length()];
  47.         i = 0;
  48.         k = abyte0.length;
  49.         while (i < k) {
  50.             j = abyte0[i];
  51.             if ((j >= 48) && (j <= 57)) {
  52.                 j = (((j - 48) + 5) % 10) + 48;
  53.             } else if ((j >= 65) && (j <= 90)) {
  54.                 j = (((j - 65) + 13) % 26) + 65;
  55.             } else if ((j >= 97) && (j <= 122)) {
  56.                 j = (((j - 97) + 13) % 26) + 97;
  57.             }
  58.             ac[i] = (char) j;
  59.             i++;
  60.         }
  61.         return String.valueOf(ac);
  62.    }

  63.    public name() {
  64.         super();
  65.     }
  66.   
  67.     public static void main(String[] args) {
  68.         try {
  69.             System.out.println("please input register name:");
  70.             BufferedReader reader = new BufferedReader(new InputStreamReader(
  71.                    System.in));
  72.             String userId = null;
  73.             userId = reader.readLine();
  74.             name myeclipsegen = new name();
  75.             String res = myeclipsegen.getSerial(userId, "20");
  76.             System.out.println("Serial:" + res);
  77.             reader.readLine();
  78.         } catch (IOException ex) {
  79.         }
  80.     }
  81. }

 

运行代码  控制台提示输入用户名  输入即可得到序列号

 

阅读(2011) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~