MyEclipse6.5 注册码生成方法,自己输入用户名

 1 package com.gen;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.IOException;
 5 import java.io.InputStreamReader;
 6 
 7 public class MyEclipseGen {
 8     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.";
 9 
10     public String getSerial(String userId, String licenseNum) {
11         java.util.Calendar cal = java.util.Calendar.getInstance();
12         cal.add(1, 3);
13         cal.add(6, -1);
14         java.text.NumberFormat nf = new java.text.DecimalFormat("000");
15         licenseNum = nf.format(Integer.valueOf(licenseNum));
16         String verTime = new StringBuilder("-").append(
17                 new java.text.SimpleDateFormat("yyMMdd").format(cal.getTime()))
18                 .append("0").toString();
19         String type = "YE3MP-";
20         String need = new StringBuilder(userId.substring(0, 1)).append(type)
21                 .append("300").append(licenseNum).append(verTime).toString();
22         String dx = new StringBuilder(need).append(LL).append(userId)
23                 .toString();
24         int suf = this.decode(dx);
25         String code = new StringBuilder(need).append(String.valueOf(suf))
26                 .toString();
27         return this.change(code);
28     }
29 
30     private int decode(String s) {
31         int i;
32         char[] ac;
33         int j;
34         int k;
35         i = 0;
36         ac = s.toCharArray();
37         j = 0;
38         k = ac.length;
39         while (j < k) {
40             i = (31 * i) + ac[j];
41             j++;
42         }
43         return Math.abs(i);
44     }
45 
46     private String change(String s) {
47         byte[] abyte0;
48         char[] ac;
49         int i;
50         int k;
51         int j;
52         abyte0 = s.getBytes();
53         ac = new char[s.length()];
54         i = 0;
55         k = abyte0.length;
56         while (i < k) {
57             j = abyte0[i];
58             if ((j >= 48) && (j <= 57)) {
59                 j = (((j - 48) + 5) % 10) + 48;
60             } else if ((j >= 65) && (j <= 90)) {
61                 j = (((j - 65) + 13) % 26) + 65;
62             } else if ((j >= 97) && (j <= 122)) {
63                 j = (((j - 97) + 13) % 26) + 97;
64             }
65             ac[i] = (char) j;
66             i++;
67         }
68         return String.valueOf(ac);
69     }
70 
71     public MyEclipseGen() {
72         super();
73     }
74 
75     public static void main(String[] args) {
76         try {
77             System.out.println("please input register name:");
78             BufferedReader reader = new BufferedReader(new InputStreamReader(
79                     System.in));
80             String userId = null;
81             userId = reader.readLine();
82             MyEclipseGen myeclipsegen = new MyEclipseGen();
83             String res = myeclipsegen.getSerial(userId, "5");
84             System.out.println("Serial:" + res);
85             reader.readLine();
86         } catch (IOException ex) {
87         }
88     }
89 
90 }
原文地址:https://www.cnblogs.com/yaowukonga/p/2953885.html