首页 > 代码库 > IntelliJ IDEA 14 Keygen
IntelliJ IDEA 14 Keygen
1 package keygen; 2 3 import java.math.BigInteger; 4 import java.util.Date; 5 import java.util.zip.CRC32; 6 7 public class Keygen { 8 9 private static final int version = 14; 10 11 /** 12 * @param s 13 * @param i 14 * @param bytes 15 * @return 16 */ 17 public static short getCRC(String s, int i, byte bytes[]) { 18 CRC32 crc32 = new CRC32(); 19 if (s != null) { 20 for (int j = 0; j < s.length(); j++) { 21 char c = s.charAt(j); 22 crc32.update(c); 23 } 24 } 25 crc32.update(i); 26 crc32.update(i >> 8); 27 crc32.update(i >> 16); 28 crc32.update(i >> 24); 29 for (int k = 0; k < bytes.length - 2; k++) { 30 byte byte0 = bytes[k]; 31 crc32.update(byte0); 32 } 33 return (short) (int) crc32.getValue(); 34 } 35 36 /** 37 * @param biginteger 38 * @return String 39 */ 40 public static String encodeGroups(BigInteger biginteger) { 41 BigInteger beginner1 = BigInteger.valueOf(0x39aa400L); 42 StringBuilder sb = new StringBuilder(); 43 for (int i = 0; biginteger.compareTo(BigInteger.ZERO) != 0; i++) { 44 int j = biginteger.mod(beginner1).intValue(); 45 String s1 = encodeGroup(j); 46 if (i > 0) { 47 sb.append("-"); 48 } 49 sb.append(s1); 50 biginteger = biginteger.divide(beginner1); 51 } 52 return sb.toString(); 53 } 54 55 /** 56 * @param i 57 * @return 58 */ 59 public static String encodeGroup(int i) { 60 StringBuilder sb = new StringBuilder(); 61 for (int j = 0; j < 5; j++) { 62 int k = i % 36; 63 char c; 64 if (k < 10) { 65 c = (char) (48 + k); 66 } else { 67 c = (char) ((65 + k) - 10); 68 } 69 sb.append(c); 70 i /= 36; 71 } 72 return sb.toString(); 73 } 74 75 /** 76 * @param name 77 * @param days 78 * @param id 79 * @return 80 */ 81 public static String MakeKey(String name, int days, int id) { 82 id %= 100000; 83 byte bkey[] = new byte[12]; 84 bkey[0] = (byte) 1; // Product type: IntelliJ IDEA is 1 85 bkey[1] = version; 86 Date d = new Date(); 87 long ld = (d.getTime() >> 16); 88 bkey[2] = (byte) (ld & 255); 89 bkey[3] = (byte) ((ld >> 8) & 255); 90 bkey[4] = (byte) ((ld >> 16) & 255); 91 bkey[5] = (byte) ((ld >> 24) & 255); 92 days &= 0xffff; 93 bkey[6] = (byte) (days & 255); 94 bkey[7] = (byte) ((days >> 8) & 255); 95 bkey[8] = 105; 96 bkey[9] = -59; 97 bkey[10] = 0; 98 bkey[11] = 0; 99 int w = getCRC(name, id % 100000, bkey);100 bkey[10] = (byte) (w & 255);101 bkey[11] = (byte) ((w >> 8) & 255);102 BigInteger pow = new BigInteger("89126272330128007543578052027888001981", 10);103 BigInteger mod = new BigInteger("86f71688cdd2612ca117d1f54bdae029", 16);104 BigInteger k0 = new BigInteger(bkey);105 BigInteger k1 = k0.modPow(pow, mod);106 String s0 = Integer.toString(id);107 String sz = "0";108 while (s0.length() != 5) {109 s0 = sz.concat(s0);110 }111 s0 = s0.concat("-");112 String s1 = encodeGroups(k1);113 s0 = s0.concat(s1);114 return s0;115 }116 }
Random r = new Random(); String key = MakeKey(userName, 0, r.nextInt(Integer.MAX_VALUE));
下载地址:Keygen-14.zip
IntelliJ IDEA 14 Keygen
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。