MyEclipse8.5破解方法

本文是转自其它博文,用以留着备份的~

Step:

1、建立一个任意名称的Java Project

2、在该工程中建立一个名文MyEclipseGen的Java文件(MyEclipseGen.java)

3、运行下面的代码,会在控制台出现" please input register name:",输入任意一个名字,回车后生成序列号

4、点击 MyEclipse菜单中Window→Preferences→MyEclipse→Subscription ,在右侧点击“Enter Subscription”

5、在弹出框中Subscriber中输入第3步的名字,在Subscription Code中输入第3步生成的序列号

Code:

package com.mshc.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/** 
 * @author svs: 
 * @version 创建时间:2017-7-11 上午09:18:13 
 * 类说明 
 */
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) {
       }
    }
}
原文地址:https://www.cnblogs.com/haiyangsvs/p/7148963.html