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 免费的单测自动生成神奇,适用于idea 2022.3 版本。 idea 单测生成工具插件,免费,社区版本
邮箱注册demo,IDEA项目,生成验证码发送到所邮箱
2023.3.6 版本,找到idea插件安装目录,将此插件里面的intellij-rainbow-brackets-2023.3.6.jar 替换为附件中的jar Rainbowify各种类型的括号(圆形、波浪形、方形、角度) Rainbowify更多语言的变量&使用颜色...
QRCode二维码生成与识别 IDEA2017测试通过,可以生成普通二维码以及带图片的二维码。
本示例是java将一个链接生成二维码,在扫二维码的时候跳转到指定链接,
用于IntelliJ IDEA的 Java单元测试生成器 自定义Velocity模板配置 包含Java和Groovy的默认Velocity模板,适用于以下测试框架和模拟框架。 JUnit4和Mockito JUnit5和Mockito Robolectric3与Mockito AndroidJUnit4和...
- 接口文档引擎:Swagger2 RESTful 风格 API 文档生成 - 全文检索引擎:Elasticsearch - 系统任务调度:Quartz ## 前后分离 - 前端框架:NodeJS + Vue + Axios - 前端模板:ElementUI ## 项目截图 ### YMall ...
本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...
通用用户管理系统, 实现最常用的用户注册、登录、资料管理、个人中心、第三方登录等基本需求,支持扩展二次开发。 > zheng-wechat-mp 微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理...
其他计算机无论注册码是否正确,均不能注册,以保护软件版权。 idea: electron 实现跨平台应用;验证: MAC地址 不同,即使注册码相同,依然无法注册。 用户注册 (user Register) 功能: 实现用户注册功能,要求...
基于vue+springboot开发的前后端分离简易博客项目源码(附项目说明文档).zip 前后端分离的简易博客项目(vue+...用java的idea打开blog-springboot 配置application.yml, 修改对应的数据库连接参数,redis的端口号
在线预订,支付定金,生成一个提车序列码,用于线下提车 后台: 管理员: 系统用户管理 注册用户审核 站内新闻管理 汽车信息管理 预订信息管理,定金查看,统计 用户: 个人资料管理 我的订单查看 我的提车序列码...
在线预订,支付定金,生成一个提车序列码,用于线下提车 后台: 管理员: 系统用户管理 注册用户审核 站内新闻管理 汽车信息管理 预订信息管理,定金查看,统计 用户: 个人资料管理 我的订单查看 我的提车序列码...
在线预订,支付定金,生成一个提车序列码,用于线下提车 后台: 管理员: 系统用户管理 注册用户审核 站内新闻管理 汽车信息管理 预订信息管理,定金查看,统计 用户: 个人资料管理 我的订单查看 我的提车序列码...
基本上,NoIdea Exhibition是一个平台,您可以在其中创建一个基本像相册一样的“展览”。 每个用户都是一个“参展商”。... 对于每个艺术品,都应有一个自动生成的QR码,该QR码会导致该艺术品的移动网站
22. 设置UUID信息生成唯一图片识别码 23. 修改管理员搜索结果页以及图片上传返回页面 24. 增加按钮删除添加触发跳转 25. 注销跳转设置使用Ajax 26. 完成整体基本功能页面联调 27. 完成同步删除图片功能 28. 增加已...
内置多个模块,如主页面,登录注册页面(老师、学生和管理员,权限不同),班级管理模块(老师可以创建多个班级,通过唯一的邀请码生成唯一的标识符),考勤管理页面(内附有考勤管理,上传和下载考勤表;...
开发软件:Eclipse或者Idea 数据库: mysql 这是一个基于Struts2+Spring+Hiberante实现的仓库物流管理系统,系统一共有3个身份:普通用户,快递网点和管理员。前台用户可以查看新闻资讯,查询快递网点,根据快递物流...
你的注册码以及姓名地址以获取软件产品的密码。注册费为10元人民币, 在校大中专学生、喜欢业余文字创作的朋友以及曾支持过中国学生为民主 教育权利抗争奋斗过的人士均可获得免费注册。 注:注册是是单机注册,...
无需注册,绿色版,支持AES、IDEA等常用对称算法,并带有文件哈希值计算、合并和切割、随机密码生成的功能