Posted on 2008-08-15 11:40
橡皮人 阅读(130)
评论(0) 编辑 收藏
1 import java.io.BufferedReader;
2 import java.io.IOException;
3 import java.io.InputStreamReader;
4 import java.io.PrintStream;
5 import java.text.DecimalFormat;
6 import java.text.NumberFormat;
7 import java.text.SimpleDateFormat;
8 import java.util.Calendar;
9
10 public class Myeclipse5_5_0_KeyMaker {
11
12 private static final String L = "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.";
13
14
15 public static void main(String args[]) {
16 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
17 String userId = null;
18 int intLicenseNum = 1;
19 String strLicenseNum = null;
20 boolean bProFlag = true;
21 String strProFlag = null;
22 while (userId == null || "".equals(userId.trim())) {
23 System.out.print("Subscriber: ");
24 try {
25 userId = br.readLine();
26 }
27 catch (IOException ioexception) { }
28 }
29 System.out.print("Number of licenses(default 1, max 999): ");
30 try {
31 strLicenseNum = br.readLine();
32 }
33 catch (IOException ioexception1) { }
34 NumberFormat nf = new DecimalFormat("000");
35 if (strLicenseNum == null || "".equals(strLicenseNum.trim())) {
36 strLicenseNum = nf.format(intLicenseNum);
37 } else {
38 strLicenseNum = nf.format(Integer.parseInt(strLicenseNum));
39 }
40 System.out.print("Professional or Standard(default pro, n=stand): ");
41 try {
42 strProFlag = br.readLine();
43 }
44 catch (IOException ioexception2) { }
45 if (strProFlag != null && !"".equals(strProFlag.trim())) {
46 bProFlag = false;
47 }
48 Calendar cal = Calendar.getInstance();
49 cal.add(1, 2);
50 cal.add(6, -1);
51 SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
52 String need = userId.substring(0, 1) + "Y" + (bProFlag ? "E3MP" : "E2MY") + "-100" + strLicenseNum + "-" + sdf.format(cal.getTime()) + "0";
53 String dx = need + "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." + userId;
54 int suf = decode(dx);
55 String code = need + suf;
56 System.out.println("Subscription Code: " + change(code));
57 }
58
59 static int decode(String s) {
60 int i = 0;
61 char ac[] = s.toCharArray();
62 int j = 0;
63 for (int k = ac.length; j < k; j++) {
64 i = 31 * i + ac[j];
65 }
66
67 return Math.abs(i);
68 }
69
70 static String change(String s) {
71 if (s == null || s.length() == 0) {
72 return s;
73 }
74 byte abyte0[] = s.getBytes();
75 char ac[] = new char[s.length()];
76 int i = 0;
77 for (int k = abyte0.length; i < k; i++) {
78 int j = abyte0[i];
79 if (j >= 48 && j <= 57) {
80 j = ((j - 48) + 5) % 10 + 48;
81 } else
82 if (j >= 65 && j <= 90) {
83 j = ((j - 65) + 13) % 26 + 65;
84 } else
85 if (j >= 97 && j <= 122) {
86 j = ((j - 97) + 13) % 26 + 97;
87 }
88 ac[i] = (char)j;
89 }
90
91 return String.valueOf(ac);
92 }
93 }