• 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

  • 相关阅读:
    小心服务器内存居高不下的元凶WebAPI服务
    注册登录过程点滴(二):使用MVC Remote验证的注意点
    .net framework 4.5为啥在IIS中找不到了
    windows平台下载Android源码
    unix及linux文件锁
    分布式软件系统
    C++ base
    linux目录结构
    linux中pkill的简单用法
    Linux中Kill进程的N种方法
  • 原文地址:https://www.cnblogs.com/zhangtingkuo/p/4079899.html
Copyright © 2020-2023  润新知