表示这个代码像是反编译出来的,阅读性好差劲,所以我作了如下改写:
- import java.io.*;
- import java.text.DecimalFormat;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Scanner;
- 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) {
- Calendar cal = Calendar.getInstance();
- cal.add(Calendar.YEAR, 3);
- cal.add(Calendar.DAY_OF_YEAR, -1);
- licenseNum = new DecimalFormat("000").format(new Integer(licenseNum));
- String verTime = "-"
- + new SimpleDateFormat("yyMMdd").format(cal.getTime()) + "0";
- String type = "YE3MP-";
- String need = userId.substring(0, 1) + type + "300" + licenseNum
- + verTime;
- String dx = need + LL + userId;
- int suf = this.decode(dx);
- String code = need + suf;
- return change(code);
- }
- private int decode(String s) {
- char[] ac = s.toCharArray();
- int i=0,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 = s.getBytes();
- char[] ac = new char[s.length()];
- int i = 0;
- int k = abyte0.length;
-
- int j;
- 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 new String(ac);
- }
- public static void main(String[] args) {
- Scanner sc=new Scanner(System.in);
- System.out.println("please input register name:");
- String userId = sc.nextLine();
- String res = new MyEclipseGen().getSerial(userId, "0");
- System.out.println("Serial:" + res);
- sc.close();
- }
- }
复制代码 |