隨筆-48  評論-26  文章-0  trackbacks-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(12);
          50         cal.add(6-1);
          51         SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
          52         String need = userId.substring(01+ "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 }

          文章來源:http://www.aygfsteel.com/NicholasEcho/archive/2008/08/15/222198.html
          posted on 2008-08-15 11:40 Worker 閱讀(56) 評論(0)  編輯  收藏 所屬分類: J2SE/J2EE

          主站蜘蛛池模板: 华阴市| 靖远县| 永安市| 江安县| 汉川市| 乌恰县| 峨边| 安图县| 马尔康县| 山西省| 容城县| 阿克陶县| 姚安县| 禹城市| 台安县| 沙田区| 德安县| 罗田县| 二手房| 栖霞市| 泊头市| 黄平县| 前郭尔| 邹城市| 仁布县| 霍州市| 石狮市| 荔浦县| 云龙县| 都匀市| 西畴县| 拉萨市| 西林县| 儋州市| 泌阳县| 太和县| 五大连池市| 富顺县| 孝昌县| 望都县| 高陵县|