`

生成Idea12-13版本的注册码

阅读更多
package com.unique.web;

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

public class HH {
	/**
	 * @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";
		// if (args.length == 0)
		// {
		// System.err.printf("*** Usage: %s name%n",
		// keygen.class.getCanonicalName());
		// System.exit(1);
		// }
		Random r = new Random();
		System.out.println("regName:" + name);
		System.out.println("regCode:" + MakeKey(name, 0, r.nextInt(100000)));
	}
}

 网上找来的,可以用,留个纪念吧。

分享到:
评论

相关推荐

    Diffblue Cover Community Edition 免费的单测自动生成神器

    Diffblue Cover Community Edition 免费的单测自动生成神奇,适用于idea 2022.3 版本。 idea 单测生成工具插件,免费,社区版本

    邮箱注册demo,IDEA项目

    邮箱注册demo,IDEA项目,生成验证码发送到所邮箱

    Rainbow Brackets 插件 2023.3.6

    2023.3.6 版本,找到idea插件安装目录,将此插件里面的intellij-rainbow-brackets-2023.3.6.jar 替换为附件中的jar Rainbowify各种类型的括号(圆形、波浪形、方形、角度) Rainbowify更多语言的变量&使用颜色...

    QRCode二维码生成与识别.rar

    QRCode二维码生成与识别 IDEA2017测试通过,可以生成普通二维码以及带图片的二维码。

    java将链接生成一个二维码.rar

    本示例是java将一个链接生成二维码,在扫二维码的时候跳转到指定链接,

    Squaretest 破解版

    用于IntelliJ IDEA的 Java单元测试生成器 自定义Velocity模板配置 包含Java和Groovy的默认Velocity模板,适用于以下测试框架和模拟框架。 JUnit4和Mockito JUnit5和Mockito Robolectric3与Mockito AndroidJUnit4和...

    基于SSM+VUE+mysql的 B2C 在线电商项目源码+项目说明.zip

    - 接口文档引擎:Swagger2 RESTful 风格 API 文档生成 - 全文检索引擎:Elasticsearch - 系统任务调度:Quartz ## 前后分离 - 前端框架:NodeJS + Vue + Axios - 前端模板:ElementUI ## 项目截图 ### YMall ...

    spring-boot示例项目

    本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...

    单点登录源码

    通用用户管理系统, 实现最常用的用户注册、登录、资料管理、个人中心、第三方登录等基本需求,支持扩展二次开发。 &gt; zheng-wechat-mp 微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理...

    word源码java-MD5-Encryption:这是WHUT的“计算机系统技能培训”课程的实施

    其他计算机无论注册码是否正确,均不能注册,以保护软件版权。 idea: electron 实现跨平台应用;验证: MAC地址 不同,即使注册码相同,依然无法注册。 用户注册 (user Register) 功能: ​ 实现用户注册功能,要求...

    基于vue+springboot开发的前后端分离简易博客项目源码(附项目说明文档).zip

    基于vue+springboot开发的前后端分离简易博客项目源码(附项目说明文档).zip 前后端分离的简易博客项目(vue+...用java的idea打开blog-springboot 配置application.yml, 修改对应的数据库连接参数,redis的端口号

    java毕业设计之在线汽车交易系统源码(ssm后端+mysql+前端+说明文档).zip

    在线预订,支付定金,生成一个提车序列码,用于线下提车 后台: 管理员: 系统用户管理 注册用户审核 站内新闻管理 汽车信息管理 预订信息管理,定金查看,统计 用户: 个人资料管理 我的订单查看 我的提车序列码...

    java毕业设计之在线汽车交易系统(ssm前后端完整源码).zip

    在线预订,支付定金,生成一个提车序列码,用于线下提车 后台: 管理员: 系统用户管理 注册用户审核 站内新闻管理 汽车信息管理 预订信息管理,定金查看,统计 用户: 个人资料管理 我的订单查看 我的提车序列码...

    java项目之在线汽车交易系统完整源码(ssm+mysql+jsp).zip

    在线预订,支付定金,生成一个提车序列码,用于线下提车 后台: 管理员: 系统用户管理 注册用户审核 站内新闻管理 汽车信息管理 预订信息管理,定金查看,统计 用户: 个人资料管理 我的订单查看 我的提车序列码...

    NoIdea Exhibition:一个用于创建,查找和参观展览的在线平台-开源

    基本上,NoIdea Exhibition是一个平台,您可以在其中创建一个基本像相册一样的“展览”。 每个用户都是一个“参展商”。... 对于每个艺术品,都应有一个自动生成的QR码,该QR码会导致该艺术品的移动网站

    基于JavaWeb的期刊管理系统+课设报告.zip

    22. 设置UUID信息生成唯一图片识别码 23. 修改管理员搜索结果页以及图片上传返回页面 24. 增加按钮删除添加触发跳转 25. 注销跳转设置使用Ajax 26. 完成整体基本功能页面联调 27. 完成同步删除图片功能 28. 增加已...

    考勤帮(模仿课堂派)-基于SSM的网页开发

    内置多个模块,如主页面,登录注册页面(老师、学生和管理员,权限不同),班级管理模块(老师可以创建多个班级,通过唯一的邀请码生成唯一的标识符),考勤管理页面(内附有考勤管理,上传和下载考勤表;...

    JSP基于SSH2实现的快递寄件仓库物流配送管理系统源码+文档说明+数据库

    开发软件:Eclipse或者Idea 数据库: mysql 这是一个基于Struts2+Spring+Hiberante实现的仓库物流管理系统,系统一共有3个身份:普通用户,快递网点和管理员。前台用户可以查看新闻资讯,查询快递网点,根据快递物流...

    PDManager个人文档数据管理

    你的注册码以及姓名地址以获取软件产品的密码。注册费为10元人民币, 在校大中专学生、喜欢业余文字创作的朋友以及曾支持过中国学生为民主 教育权利抗争奋斗过的人士均可获得免费注册。 注:注册是是单机注册,...

    Omziff-一款好用的小型加密软件

    无需注册,绿色版,支持AES、IDEA等常用对称算法,并带有文件哈希值计算、合并和切割、随机密码生成的功能

Global site tag (gtag.js) - Google Analytics