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] = 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)
{
if (args.length == 0)
{
System.err.printf("*** Usage: %s name%n", keygen.class.getCanonicalName());
System.exit(1);
}
Random r = new Random();
System.out.println(MakeKey(args[0], 0, r.nextInt(100000)));
}
}
分享到:
相关推荐
IntelliJ IDEA 2020.1.4 x64官方
该文件用于搭建IntelliJ IDEA工具的认证服务,适用于windows、linux、mac平台。以windows平台为例,只需要按里面的说明文件,将文件注册为windows服务,然后在Idea开发工具中,将认证服务地址设置为...
Intellij IDEA(社区和旗舰版)插件,为Travis YML,Appveyor YML,Git子模块等文件添加图标。 从0.4版开始,它可与所有JetBrains产品(如WebStorm,DataGrip等)一起使用。 从或通过您的JetBrains IDE(文件,...
本文通过图文并茂的形式给大家介绍了Windows 系统下安装 IntelliJ IDEA 的方法,文中还给大家提到了IntelliJ IDEA 注册码,非常不错,具有参考借鉴价值,需要的朋友参考下
IntelliJ IDEA旗舰版 IntelliJ IDEA社区 IntelliJ IDEA教育版 MPS 暴风雨 PyCharm专业 PyCharm社区 PyCharm教育 骑士 Ruby矿 网络风暴 赞助商 安装 使用IDE内置插件系统安装: 首选项(设置) >插件>市场>搜索并...
基于java开发的仿QQ聊天程序,可以实现用户注册、登录、聊天、传输文件、查看好友在线情况、建立群聊、查看群成员在线情况、过群聊私聊等功能。
适用于IntelliJ IDEA / PhpStorm的Latte插件 提供对 (PHP的模板引擎)的支持。 插件页面: 论坛: 安装 设置→插件→浏览存储库→查找“拿铁”→安装插件→重新启动IDE 赞助商 GitHub是否已有您的 :credit_card:...
IntelliJ IDEA / PhpStorm Laravel插件 基于 键 值 插件网址 ID de.espend.idea.laravel 变更日志 安装 要安装,请转到Settings > Plugins然后搜索“ Laravel插件”。 安装后,您必须通过转到Settings > ...
java源码磁力链下载适用于 Android Studio 和 IntelliJ IDEA 的 rest2mobile 插件 ...13 或更高版本从源创建插件项目: 从源目录src创建项目 将res和l10n目录注册为资源 将libs目录注册为库 使用 Bu
主要介绍了intellij idea旗舰版解决学生无法注册问题详解,文中通过图文示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
使用的prefs dumpapp插件在应用程序共享首选项中查找应用程序Firebase注册ID令牌安装您可以从安装插件。 或者您可以从此下载最新二进制文件建立您需要在插件设置中设置“授权密钥”:用法该插件将在“工具”菜单下...
最近发现了一款很厉害的 Intellij IDEA 插件——Bito。 Bito 插件无需魔法,亲测有效,可以基于 GPT-4 来写代码同时还提供了一些有用的功能,如自动补全提交信息、快速查看历史记录等。 没使用魔法的情况下,注册的...
C:\Users\XXX\AppData\Roaming\JetBrains\IntelliJIdea2023.1\plugins\Restful Fast Request\lib 注意! IDEA安装后需要激活码,关闭,会自动推出,不用管也不用重新打开,执行下面操作。 下载该资源后,先备份原版...
哪怕你注册的时候填的大写,都要写成小写。 否则也是登录不上去、激活不了的。 为什么需要全部写成小写呢?这里解释一下。 下面是申请学生免费成功的页面,点击Your Account。 可以看到,Username当中所有的字母都...
快速链接: , ,,使用Grammar-Kit构建的开源插件: , , , , , , , Perl5-IDEA , Dart,的IntelliJ-haXe的, Cypher支架, OGNL 一般用法说明创建语法* .bnf文件,请参阅插件代码中的Grammar.bnf 。...
java通过webservice调用asmx的实例。
IDEA+MAVEN基于ssm框架的数据库增删查改以及用户登录 详情可见博文:...开发工具:IntelliJ IDEA 2018、JDK1.8、tomcat 7.0.79、Mysql 5.0、Maven 3.6.0
基于WEB的仓库管理系统主要用于实现仓库的出入库管理,基本功能包括:入库模块、出库模块、商品查看模块、用户注册模块、个人信息管理模块等。本系统结构如下: 入库模块:入库新商品,或者是入库已有商品。 出库...
squaretest-1.7.2 适用于IDEA 2020.3 — 2023.1.5,squaretest-1.8.2 适用于IDEA 2023.2+,许可证都是一样的
涉及知识点: 技术语言:java 操作系统:Win10 开发工具:Intellij IDEA、maven 后端使用技术:spring、springMVC、mybatis、shiro 前端使用技术:html、css、js、ajax 数据库:mysql 主要设计内容: 卖家模块:卖家...