`
zhangym124
  • 浏览: 343523 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

IntelliJ IDEA 生成注册码源程序

    博客分类:
  • IDE
阅读更多

转发请注明出处 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

3
5
分享到:
评论
2 楼 snowfigure 2015-04-09  
snowfigure 写道
我专门登陆上来,就是想问问,这个Version有啥鸟用?定义完了就不管了,下面的代码用到了?

日,看错了,我知道了
1 楼 snowfigure 2015-04-09  
我专门登陆上来,就是想问问,这个Version有啥鸟用?定义完了就不管了,下面的代码用到了?

相关推荐

    intellij idea的一些基础设置

    对于需要使用付费功能的用户,可以通过购买官方授权码或参加官方活动等方式获取注册码。 #### 二、基础设置 - **2.1 设置界面和编辑区主题** 在IntelliJ IDEA中可以自定义编辑器的主题,以提高编程体验。打开...

    JSP Servlet MySQL IDEA实现传智书城商城.zip

    Servlet则是Java中的服务器端程序,负责处理HTTP请求,执行业务逻辑,并生成响应。在这个商城项目中,JSP将用于展示商品信息、购物车、订单等界面,而Servlet则用于处理用户的操作,如登录、注册、添加商品到购物车...

    IDEA、方法.docx

    9. 配置助手会提示选择激活方式,这里选择“Activation Code”并通过注册码激活。 10. 重启IDEA后,可以通过"Help" -&gt; "Register"验证激活状态,若显示激活至2089年,则表示激活成功。 创建新项目时,你需要: 1. ...

    springmvc+intellij

    在本项目中,我们结合了Spring MVC和IntelliJ IDEA来创建一个模拟博客网站,涵盖了用户注册和博客发布的功能,这将涉及到以下几个关键知识点: 1. **Spring MVC 框架**:Spring MVC是Spring框架的一部分,负责处理...

    idea jdbc 示例程序

    【标题】"idea jdbc 示例程序" 是一个基于Java集成开发环境IntelliJ IDEA(简称IDEA)的数据库连接示例项目,它展示了如何在IDEA中使用Java Database Connectivity(JDBC)技术进行数据库操作。这个示例适用于Java ...

    IDEA部署传智书城II

    【IDEA部署传智书城II】是一个关于Java Web应用程序部署的实践教程,主要针对学生或开发者进行课程设计时的学习需求。在这个过程中,我们将利用IntelliJ IDEA(简称IDEA)这一强大的Java集成开发环境来完成传智书城...

    PVS-Studio_6.00原文件和注册码

    标题"\"PVS-Studio_6.00原文件和注册码\"\"暗示我们正在讨论的是PVS-Studio的6.00版本,这个版本可能包含了完整的安装程序和用于激活软件的注册码。通常,这样的资源对于那些希望在项目中使用PVS-Studio但又没有购买...

    IDEA搭建SSM实现登录、注册,增删改查功能

    本教程将详细介绍如何使用IntelliJ IDEA(IDEA)来搭建SSM环境并实现登录、注册以及增删改查等基本功能。 首先,我们从创建项目开始。在IDEA中选择“New Project”,然后选择“Spring Initializr”来初始化一个...

    JCreator pro3.00和注册码

    2. **注册码激活**:在标题中提到的“注册码”,通常用于验证软件的合法性并解锁全部功能。安装完成后,打开软件,输入提供的注册码即可激活。请注意,非法获取和使用注册码可能违反软件许可协议,建议通过正规渠道...

    FlexBuilder4注册码

    此外,Adobe现在推荐开发者使用开放源代码的Apache Flex SDK和免费的IntelliJ IDEA或Eclipse IDE来开发Flex应用。这种方式不仅避免了版权问题,也能够持续获得社区的支持和更新。 总而言之,FlexBuilder4是一个强大...

    idea_register

    总结来说,"idea_register" 关乎IntelliJ IDEA的激活和配置过程,可能涉及到注册码、序列号、许可证的使用,以及如何个性化设置和优化IDEA的使用体验。提供的源代码仓库可能为用户提供进一步的学习资源和实践指导。

    1031demo.rar

    IntelliJ IDEA是一款强大的Java集成开发环境(IDE),广泛用于构建各种类型的应用程序,包括Web应用。它提供了丰富的功能,如代码自动完成、重构工具、调试器和版本控制集成,使开发过程更高效。 基于以上信息,...

    java专业聊天源程序

    Java专业聊天源程序是一款基于JAVA语言开发的多用户聊天应用,它提供了友好的用户界面,使得用户能够方便地进行实时的多人交流。这个程序的核心功能包括用户注册、登录、发送和接收消息,以及可能的其他社交特性,如...

    IDEA下SpringBoot+JSP+MySQL集成Demo实现简单登陆注册

    在本教程中,我们将深入探讨如何在IntelliJ IDEA(IDEA)环境下使用Spring Boot、JSP和MySQL数据库创建一个简单的登录注册应用。这个集成Demo是后端开发的基础,可以帮助初学者理解这些技术如何协同工作。 首先,让...

    学生信息管理系统(源代码)

    学生信息管理系统是一款基于JSP和Web技术开发的应用程序,它旨在高效地管理和处理与学生相关的各种数据。在这款系统中,用户可以进行学生信息的录入、查询、修改和删除等操作,大大提升了学校或教育机构对学生档案...

    jsp源码网上书店系统(论文+jsp源程序)

    ### jsp源码网上书店系统(论文+jsp源程序) #### 概述 该资源提供了一个基于JSP技术实现的网上书店系统的源代码及其相关的论文资料。系统采用Java后端技术栈开发,主要利用JSP(JavaServer Pages)作为前端展示页面...

    使用IDEA2017搭建的SSM框架

    在本项目中,我们使用IntelliJ IDEA 2017版本作为集成开发环境来搭建SSM框架,并实现了一个基础的登录注册功能。下面将详细介绍如何进行SSM框架的搭建以及相关知识点。 首先,我们需要了解SSM框架的核心组件: 1. ...

    jsp源程序

    **JSP(JavaServer Pages)源程序详解及BBS论坛系统配置指南** JSP是Java技术在Web开发领域的一种应用,它允许开发者将HTML代码与Java代码混合编写,以实现动态网页的创建。JSP的核心理念是“分离关注点”,即界面...

    网上书店系统(论文+jsp源程序).rar

    《网上书店系统(论文+jsp源程序).rar》是一个包含了完整的网上书店管理系统的资源包,主要涉及的技术栈是Java和JSP。这个系统不仅提供了源代码,还包含了数据库文件和项目文档,为开发者提供了一个全面了解和学习...

    JSP网络购物中心毕业设计(源代码+论文)_jsp_java源程序代码.rar

    - IDE:如Eclipse、IntelliJ IDEA,用于编写和调试Java和JSP代码。 - Web服务器:如Tomcat、Jetty,用于运行和测试JSP应用。 - 版本控制:如Git,管理代码版本。 - 数据库管理工具:如MySQL Workbench,用于数据库...

Global site tag (gtag.js) - Google Analytics