解决IDEA IntelliJ注册码冲突的问题
编译下面的代码生成uern ame 和 lincense key
package com.sfz.javatest.tools;
import java.math.BigInteger;
import java.util.Date;
import java.util.Random;
import java.util.zip.CRC32;
/**
* Created with IntelliJ IDEA.
* User: SFZ
* Date: 17-2-28
* Time: 下午9:15
* To change this template use File | Settings | File Templates.
*/
public class IDEACode {
/**
* @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
* @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] = 13; // 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)
{
String name = "dev";
Random r = new Random();
System.out.println("regName:"+name);
System.out.println("regCode:"+MakeKey(name, 0, r.nextInt(100000)));
}
}
解决IDEA IntelliJ注册码冲突的问题相关推荐
- SpringBoot多线程环境下,解决多个定时器冲突问题
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/cssnnd/article/details/108328942 战术分析: 实际开发项目中一定不 ...
- Maven解决jar包版本冲突
jar冲突原因: jar包冲突主要是由于依赖传递导致的,不同的jar包依赖同一个不同版本的jar包,导致冲突.可以看下下图. B和C都依赖D,但是不同的版本,所以在使用的过程中可能会出现问题. 依赖调 ...
- 解决在 IntelliJ IDEA 中,输入代码时突然不会自动显示下拉框提示
解决在 IntelliJ IDEA 中,输入代码时突然不会自动显示下拉框提示 笔者的运行环境: IntelliJ IDEA 2020.1.2 (Ultimate Edition) JDK 13.0.2 ...
- Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区
Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 参考文章: (1)Java解决Hash(散列)冲突的四种方法--开放地址法 ...
- 解决visio和office365冲突,无法安装visio问题
本教程用于解决office365和visio冲突,无法安装visio问题 目前系统中已经安装Office365 尚未安装visio专业版本 1.下载office增强工具. office增强工具下载地址 ...
- IP地址冲突怎么办? 如何解决局域网IP地址冲突?
IP地址冲突怎么办? 如何解决局域网IP地址冲突? 在同一个局域网里如果有两个用户同时使用了相同的IP地址,或者一个用户已经通过DHCP得到了一个IP地址,而此时又有其他用户以手工分配方式设定了与此相 ...
- Springboot定时器多线程解决多个定时器冲突问题
使用场景 : 我们的订单服务,一般会有一个待支付订单,而这个待支付订单是有时间限制的,比如阿里巴巴的订单是五天,淘宝订单是一天,拼多多订单是一天,美团订单是15分钟- 基金系统中,如何同时更新多个存储 ...
- 解决Eclipse SVN文件冲突详解
在使用Eclipse SVN插件进行团队开发的过程,假设开发人员A和B都获取了同一个文件的最新版本(假如版本号为8),并都对其进行了改动,成员A已经提交了自己所作的改动(版本号变为9),如果此时成员B ...
- 三大方案解决了Intellij IDEA 2017/2018.1.5 输入法 不跟随
彻底解决了Intellij IDEA 2017.2 2018.1.5 中文无法输入及中英文没法自由切换的问题 对于idea无法输入中文,中文输入法时只停留在第一个拼音字母的界面的问题,有很多种解决方案 ...
最新文章
- 和至少为k的最短子数组 python_LeetCode 862. 和至少为 K 的最短子数组
- 数据结构复习:单链表
- 算法--------设计哈希集合
- html5 canvas 不兼容safari浏览器_HTML5的介绍
- aes模式_AES的完整形式是什么?
- c#中重载单目运算符-_C#程序重载二进制运算符(-,*,/)
- php5.6 pdo.dll 没有,php5.6没有pdo怎么办
- FastCGI - Getting Request URI and Content in C++ FCGI
- 算法:线性时间选择_机器学习必修课!scikit-learn 支持向量机算法库使用小结
- Spring学习之AOP
- Jquery第二章appendTo方法到方法的使用练习第二节
- html 获取当前url,js获取当前页面url信息的方法
- Vue组件动态(异步)传值
- 如何去掉高CAD选择集对话框(高版本才有)
- 清除系统垃圾脚本 windows
- 电脑无法连接wifi得解决方法
- 欧冠超级计算机,超级计算机预测欧冠决赛:红军65%概率夺冠 萨拉赫最可能进球...
- Opencv-python 求原坐标点透视变换后对应坐标点
- redo和undo日志
- JS 事件冒泡、捕获。学习记录
热门文章
- $(document).click()在iPhone上无法正常工作jQuery
- linux添加额外ip,CentOS7添加多个IP方法
- 脸书正面临信用破产危机
- python编程教学基本语法教学视频_Python编程学习#Python视频课程#全民一起玩Python 基础+提高...
- 日志文件转运工具Filebeat笔记|万字长文
- Stardock.SoundPackager.v1.2-LiGHTHELL
- Multisim仿真——二极管实现与门、或门
- Cadence Orcad Capture 原理图设置标题框的方法
- 什么是fbclid?新的facebook参数?
- 解压GitHub压缩文件