Intellij Idea 注册机代码

import java.math.BigInteger;
import java.util.Date;
import java.util.Random;
import java.util.Scanner;
import java.util.zip.CRC32;
public class KeyGen {
    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();
    }

    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();
    }

    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();
    }

    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] = 14; // 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){
        System.out.println("请输入用户名:");
        Scanner scanner = new Scanner(System.in);
        String username = scanner.next();
        Random r = new Random();
        System.out.println(MakeKey(username, 0, r.nextInt(100000)));
    }
}
时间: 2024-08-13 13:55:34

Intellij Idea 注册机代码的相关文章

[转]Wing IDE 6.0 安装及算号器注册机代码

下载安装wing 选择第三个,运行算号器,输入license id 输入request id. Python 2 算号器注册机代码 import string import random import sha BASE16 = '0123456789ABCDEF' BASE30 = '123456789ABCDEFGHJKLMNPQRTVWXY' def randomstring(size=20, chars=string.ascii_uppercase + string.digits): re

注册机代码~

做看雪的crackme才看出差距,包含的东西比别的多. 这个ck没别的,用代码校验和来做反调试,于是下硬件断点,直接还原上代码 // Reverse11.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" int _tmain(int argc, _TCHAR* argv[]) { char username[30

intellij—idea14 注册机

package com.qunar.fresh; import java.math.BigInteger; import java.util.Date; import java.util.Random; import java.util.zip.CRC32; public class keygen14 { private static final int version=14; /** * @param s * @param i * @param bytes * @return */ publi

精装友情通讯录算法逆向与注册机实现

精装友情通讯录 注册算法分析: 1.  注册码由三部分组成. 2. 注册码的第一部分是由订单号对0x6d取余 3. 注册码第二部分: 先将订单号与0XB25F1异或,将异或后的结果转换成十进制字符串后,在些字符串后面连接上两个字符. 而这两个字符分别由字符串的第0位,第1位和第2位,第3位计算而来.记为szTemp.算法如下 DWORD dwTemp2 = dwNum ^ 0xB25F1; TCHAR szTemp[20] = {0}; _sntprintf(szTemp, 20, "%d&qu

Facebook注册机_Facebook账号注册_Csharp代码示例_.Net代码_VS2013

[Facebook注册机_Facebook账号注册_Csharp代码示例_.Net代码] 朋友叫了很久帮忙写,无奈今天花时间研究下.... 下面只是一个简单示例, 里面我写有一些类,对于写注册机之类的,或许有帮助哟!! ====================================== 注册是成功了,可登录发现跳出手机验证.... 部分代码: using System; using System.Collections.Generic; using System.ComponentMo

Intellij IDEA 14的注册机及源代码

注册机下载 IntelliJ IDEA 14 注册机及源代码 软件界面 程序源代码 IDEAKeyGen.java /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package ide

Flash Builder 4.7 注册机完美激活方法

Flash Builder 4.7 破解注册方法目前较为通用的三种方法: 第一种:三步修改配置文件方法,这种有开发者反应这种方法在升级和创建纯 AS 项目时会存在问题,但我懒的去试这种方法的主要原因是它太麻烦了. 第二种:利用 CS6 版的通用破解补丁文件 amtlib.dll 替换方法,这种方法倒是挺简单,但有开发者反应说这种方法会导致启动软件时间变长,我在第一次安装 FB4.7 时就是用了这种方法,不过我并没有在意过它的启动时间是否变长了,因为 FB 本身就是基于 Eclipse 的,JAV

[原创]VB注册机独辟蹊径-----注册机也可以这样写

近段时间接了个项目,是关于一个称重传感器的上位机系统,需要一机一码针对不同的客户机分别注册,第一次注册完后,下次打开后不必注册. 刚开始想用正规的注册机办法去完成,搜罗了半天,发现现在大部分的硬盘注册机 其实并不是读取硬盘的物理序列号来进行加密的,而是采用读取磁盘分区卷标号来作为加密的基值.先按照读取磁盘卷标号开发了注册机程序,在自己的三台电脑上测试都没问题,也就是说没出现过读取卷标号重复的情况.结果第二天发给客户测试,客户反应用了几台电脑的注册码全部一样,瞬间石化. 后来自己分析过,可能是由于

Sublime Text 3 破解版 + 注册机 + 汉化包(转自 http://www.cnsecer.com/251.html)

Sublime Text就不用多做介绍了,官方最新发布了Sublime Text 3 Beta,价格却也飙到了70刀. 2013年5月10日更新 3033完美破解 大大的提高了启动速度 优化所有插件性能 界面管理增强 新增侧边栏预览选项卡 优化边栏动画 多个工作区可以共享同一个项目 从Python2.6升级到Python3.3 某些API事件现在以异步方式运行 新增window.settings()和window.template_settings() 语法高亮更新 修正Linux不兼容问题 修