转发请注明出处 http://xuantan.iteye.com/admin/blogs/2167098

IntelliJ IDEA14 已经发布一段时间了,突然心血来潮想体验下,于是乎下载了安装程序,但苦于没有注册码。

于是通过万能的Google找到了生成注册码的算法程序,其可适用于各种版本的IDEA,只需更改代码中的 version 变量即可。

以下为可运行的源码程序,只做研读、交流之用,还希望广大IT从业者支持正版!!!

package com.xuantan.idea.keygen;import java.math.BigInteger;
import java.util.Date;
import java.util.Random;
import java.util.zip.CRC32;/*** Created by xuantan on 14/12/17.*/
public class Keygen {private static final int version = 14;/**** @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*/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* @return*/public static String MakeKey(String name, int days, int id) {id %= 100000;byte bkey[] = new byte[12];bkey[0] = (byte) 1;bkey[1] = 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) {Random r = new Random();String key = MakeKey("yourname", 0, r.nextInt(Integer.MAX_VALUE));System.out.println(key);}
}

转发请注明出处 http://xuantan.iteye.com/admin/blogs/2167098

IntelliJ IDEA 生成注册码源程序相关推荐

  1. 设置IntelliJ IDEA生成注释时的@author

    修改IntelliJ IDEA生成注释时的author 在Intellij IDEA中新建一个class类时会自动生成关于作者和创建时间的注释,这样减少了开发人员的工作量.可是小伙伴们知道@autho ...

  2. php getter,IntelliJ IDEA生成Getter和Setter方法

    您可以为 IntelliJ IDEA 类中的字段生成访问器和 mutator 方法(getters 和 setters).IntelliJ IDEA 根据 JavaBeans API 的要求,只用一个 ...

  3. Myeclipse2018注册工具无法生成注册码解决方案

    Myeclipse2018注册工具无法生成注册码解决方案 根本问题就是jdk版本过高,导致注册工具不能识别,另外需要计算机安装上jdk1.8. 注册详细步骤不在赘述,以上为出现问题的注册器版本. 查看 ...

  4. IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

    首先介绍一下IntelliJ IDEA生成jar包的方式: 1.打开项目,打开FIile->Project Structure...菜单.如下图: 选中Artifacts,点+号,选择JAR,再 ...

  5. Intellij IDEA生成serialVersionUID的方法!

    Intellij IDEA生成serialVersionUID的方法 默认情况下Intellij IDEA是关闭了继承了Serializable接口的类生成serialVersionUID的警告.如果 ...

  6. 做个计算器--生成注册码

    本篇文章将实现注册机生成注册码,首先讲解 MD5 的原理,接着通过代码的形式来实现生成注册码. 零.MD5 原理 0.1 散列函数 散列函数主要用于校验数据的完整性,通过散列函数可以创建消息的数字指纹 ...

  7. Intellij Idea 生成serialVersionUID的方法

    默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告.如果需要ide提示生成serialVersionUID,那么需 ...

  8. intellij idea 生成可执行jar 运行提示没有主清单属性

    参考文章:https://blog.csdn.net/u011624972/article/details/58591825 百度了一圈,都是说MANIFEST.MF不含有Main Class信息,但 ...

  9. Intellij Idea生成serialVersionUID的方法

    默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告.如果需要ide提示生成serialVersionUID,那么需 ...

最新文章

  1. 川大网络教育2013秋《计算机应用基础》第二次作业,2013秋川大网教《计算机应用基础》第一、二次作业及答案解析.doc...
  2. Spring面试五连问,这怎么顶啊
  3. 监听以太网(一) Packet32包说明
  4. Android之应用APN、WIFI、GPS定位小例子
  5. tmux颜色高亮跟vim不一致的情况
  6. flink 不设置水印_区分理解Flink水印延迟与窗口允许延迟的概念
  7. python3迭代器和可迭代对象,Python3学习(8)--迭代,可迭代的和迭代器
  8. Ansible的简单使用
  9. Graham Scan凸包算法
  10. 大前端时代下,如何成为一名优秀的程序员?
  11. CRF和LSTM 模型在序列标注上的优劣?
  12. eclipse关闭mysql数据库_Eclipse 连接 Mysql 数据库操作总结
  13. Cobalt Strike之网站克隆
  14. 李大潜院士:学习数学是战略性投资
  15. Proxmox VE技巧
  16. 尼日利亚一油罐车发生爆炸 造成数十人遇难
  17. 第十三届蓝桥杯(Web 应用开发)线上模拟赛【第三题】(封装函数实现个人所得税计算器)
  18. 一、C++面向对象高级编程(下) (侯捷)
  19. 德鲁克:优秀的管理者,都做到了这3点
  20. 凶残的挖矿脚本,奴役我数千机器!

热门文章

  1. Ubuntu18.04安装GCC8.3.0
  2. 使用POI批量导出Excel文件(SSM)
  3. 处理机调度典型调度算法
  4. TCP-Wrappers
  5. 菩提本无树 明镜亦非台 本来无一物 何处惹尘埃
  6. 我的首个电子书软件--嘎嘎读书 的开发(三)
  7. 七牛云上传图片,只需十分钟搞定
  8. 基于javaweb+jsp的医院住院管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)
  9. linux云计算架构师,springcloud视频教程
  10. 从无到有,一步一步实现记事本APP(一)