几个license:

(1)

key:IDEA

value:61156-YRN2M-5MNCN-NZ8D2-7B4EW-U12L4

(2)

key:huangwei
value:97493-G3A41-0SO24-W57LI-Y2UGI-JGTU2

(3)

key:hkl520
value:34423-VZYXD-FQXZ7-O6I7U-J3ZK8-R7V62

(4)

key:Intelligent
value:40957-EG6O9-2915L-CF1RP-57IQJ-Y6VZ3

(5)

key:tommy
value:49164-YPNVL-OXUZL-XIWM4-Z9OHC-LF053

(6)

key:whuanghk
value:98220-IN97R-TV1ID-2JAPO-OXZEO-LAM70

(7)

key:itey
value:91758-T1CLA-C64F3-T7X5R-A7YDO-CRSN1

==============================

import java.math.BigInteger;
import java.util.Date;
import java.util.Random;
import java.util.zip.CRC32;

public class keygen
{
/**
* @param s
* @param i
* @param bytes
* @return
*/
public static short getCRC(String s, int i, byte bytes[])
{
CRC32 crc32 = new CRC32();
if (s != null)
{
for (int j = 0; j < s.length(); j++)
{
char c = s.charAt(j);
crc32.update(c);
}
}
crc32.update(i);
crc32.update(i >> 8);
crc32.update(i >> 16);
crc32.update(i >> 24);
for (int k = 0; k < bytes.length - 2; k++)
{
byte byte0 = bytes[k];
crc32.update(byte0);
}
return (short) (int) crc32.getValue();
}

/**
* @param biginteger
* @return String
*/
public static String encodeGroups(BigInteger biginteger)
{
BigInteger beginner1 = BigInteger.valueOf(0x39aa400L);
StringBuilder sb = new StringBuilder();
for (int i = 0; biginteger.compareTo(BigInteger.ZERO) != 0; i++)
{
int j = biginteger.mod(beginner1).intValue();
String s1 = encodeGroup(j);
if (i > 0)
{
sb.append("-");
}
sb.append(s1);
biginteger = biginteger.divide(beginner1);
}
return sb.toString();
}

/**
* @param i
* @return
*/
public static String encodeGroup(int i)
{
StringBuilder sb = new StringBuilder();
for (int j = 0; j < 5; j++)
{
int k = i % 36;
char c;
if (k < 10)
{
c = (char) (48 + k);
}
else
{
c = (char) ((65 + k) - 10);
}
sb.append(c);
i /= 36;
}
return sb.toString();
}

/**
* @param name
* @param days
* @param id
* @param prtype
* @return
*/
public static String MakeKey(String name, int days, int id)
{
id %= 100000;
byte bkey[] = new byte[12];
bkey[0] = (byte) 1; // Product type: IntelliJ IDEA is 1
bkey[1] = 14; // version
Date d = new Date();
long ld = (d.getTime() >> 16);
bkey[2] = (byte) (ld & 255);
bkey[3] = (byte) ((ld >> 8) & 255);
bkey[4] = (byte) ((ld >> 16) & 255);
bkey[5] = (byte) ((ld >> 24) & 255);
days &= 0xffff;
bkey[6] = (byte) (days & 255);
bkey[7] = (byte) ((days >> 8) & 255);
bkey[8] = 105;
bkey[9] = -59;
bkey[10] = 0;
bkey[11] = 0;
int w = getCRC(name, id % 100000, bkey);
bkey[10] = (byte) (w & 255);
bkey[11] = (byte) ((w >> 8) & 255);
BigInteger pow = new BigInteger("89126272330128007543578052027888001981", 10);
BigInteger mod = new BigInteger("86f71688cdd2612ca117d1f54bdae029", 16);
BigInteger k0 = new BigInteger(bkey);
BigInteger k1 = k0.modPow(pow, mod);
String s0 = Integer.toString(id);
String sz = "0";
while (s0.length() != 5)
{
s0 = sz.concat(s0);
}
s0 = s0.concat("-");
String s1 = encodeGroups(k1);
s0 = s0.concat(s1);
return s0;
}

public static void main(String[] args)
{

try {
System.out.println("please input register name:");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String username = null;
username = reader.readLine();
Random r = new Random();
String res = MakeKey(username, 0, r.nextInt(100000));
System.out.println("Key:" + res);
reader.readLine();
} catch (IOException ex) {
}

}
}

直接运行输入name回车

最新文章

  1. 【转】利用反射快速给Model实体赋值
  2. [Android]使用自定义JUnit Rules、annotations和Resources进行单元测试(翻译)
  3. 有关sql server 2008无法导入数据库mdf文件的处理方法
  4. Samba - 文件共享服务器的搭建和配置
  5. python中的input,print
  6. centos 6.3 安装 svn
  7. Jquery实现简单到计时功能(setTimeout,setInterval)
  8. 【HDOJ】1362 The Bermuda Triangle
  9. iOS 项目中将 http 改成 https 后需要改动的地方(密钥验证)
  10. SSIS学习计划
  11. js第四章作用域
  12. OpenCV ——双线性插值(Bilinear interpolation)
  13. webstorm比dreamweaver强大的地方 转
  14. GitLab服务器IP地址设置
  15. 福利:工作经常用到的Mac软件整理(全)
  16. 新书《Ext JS 4.2 实战》终于出炉了
  17. websocket 实现单聊群聊 以及 握手原理+加密方式
  18. Aerospike-内存和硬盘混合存储的kv数据库
  19. dubbo入门学习笔记之环境准备
  20. bzoj4566 / P3181 [HAOI2016]找相同字符

热门文章

  1. C#编程打字指法练习
  2. Android学习之Notification
  3. Knime 使用 初探
  4. js callback函数
  5. Ext布局篇
  6. iOS切换window根控制器 (转)
  7. 根据反射获取属性信息并创建DataTable
  8. 疯狂Java讲义 第一章控制台五子棋(代码分析)
  9. word2vec配置到使用
  10. (转)解决JSP路径问题的方法(jsp文件开头path, basePath作用)