MyEclipse Subscription code生成器

来源:互联网 发布:java中两个list合并 编辑:程序博客网 时间:2024/05/17 23:19

对应不同的版本把KeyGenerator类放到任意工程下,执行程序,在控制台输入注册名称,回车后会生成序列号。

  

import java.io.*;/*** MyEclipse6.0 Register Code* @author 匿名**/public class KeyGenerator {    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) {        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 KeyGenerator() {        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();            KeyGenerator myeclipsegen = new KeyGenerator();            String res = myeclipsegen.getSerial(userId, "20");            System.out.println("Serial:" + res);            reader.readLine();        } catch (IOException ex) {        }    }}

以下是7.0的算法:

 import java.io.IOException; import java.io.InputStreamReader; /*** MyEclipse7.0 Register Code* @author 匿名**/ 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) {    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, "5");     System.out.println("Serial:" + res);     reader.readLine();    } catch (IOException ex) {    } }}