MyEclipseコード独自のsubscriptionコードを生成



package chp;

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

public class SubscriptionCode {

	 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 SubscriptionCode() {

	        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();

	            SubscriptionCode myeclipsegen = new SubscriptionCode();

	            String res = myeclipsegen.getSerial(userId, "5");

	            System.out.println("Serial:" + res);

	            reader.readLine();

	        } catch (IOException ex) {

	        }

	    }


}