`
weihong01267
  • 浏览: 51689 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ideal sn

 
阅读更多
import java.math.BigInteger;
import java.util.Date;
import java.util.Random;
import java.util.zip.CRC32;

public class Sn
{
  /**
  * @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] = 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)
  {
//    if (args.length == 0)
//    {
//      System.err.printf("*** Usage: %s name%n", Test.class.getCanonicalName());
//      System.exit(1);
//    }
      int i=0;
      int a = i +5;
    Random r = new Random();
    System.out.println(MakeKey("weg", 0, r.nextInt(100000)));
  }
}

 

分享到:
评论

相关推荐

    ideal 6410 GPIO演示代码

    "ideal 6410 GPIO演示代码" 指的是一个与Ideal 6410处理器相关的GPIO(General Purpose Input/Output)的示例代码。GPIO是微控制器或处理器中用于与其他硬件设备通信的接口,能够设置为输入或输出模式,以控制外部...

    ideal的IDE

    "ideal的IDE"是一款备受开发者推崇的集成开发环境(Integrated Development Environment),尤其在处理Java、Python、Scala等多语言开发时表现出色。虽然它自称为“史上第二好的IDE”,但其功能强大、性能优秀,足以...

    ideal插件解决时间问题

    在IT行业中,我们经常遇到各种工具和插件来优化我们的工作流程,其中之一就是"ideal插件"。这个插件在处理时间相关的问题时显得尤为重要,尤其是在编程和开发环境中。"ideal插件解决时间问题"这一标题揭示了它在管理...

    用于IDEAL开发web service的springframe框架的jar包

    Ideal(可能是指IDEAL,一个编程环境或工具)与Spring框架结合,可以帮助开发者更有效地开发Web服务。下面将详细讨论Spring框架的核心组件和其在Web服务开发中的应用。 首先,Spring框架是一个开源的Java平台,它...

    Ideal-Image-Slider.zip_IDEAL

    《理想图片滑动插件——Ideal Image Slider》 在网页设计和开发中,图片滑动插件是一个不可或缺的元素,它能以优雅的方式展示多张图片,提升用户体验。"Ideal Image Slider" 就是一款专为JavaScript爱好者打造的、...

    ideal low pass filter

    matlab ideal low pass filter

    On Ideal Lattices and Learning With Errors Over Rings

    I In any cyclotomic ring, Ring-LWE is pseudorandom if ideal lattice problems are (quantumly) hard in the worst case. I Ring-LWE allows for much more compact and efficient encryption schemes than ...

    ideal_lp.rar_IDEAL_ideal_lp函数_wc低通_理想低通_理想低通滤波

    理想低通滤波器滤波器截止角频率wc,阶数Me

    ideal配置jdk.rar

    在IT行业中,集成开发环境(Integrated Development Environment,简称IDE)是程序员进行软件开发的重要工具,而IntelliJ IDEA(简称ideal)就是其中的一款著名Java IDE。对于初学者或需要在Windows 7系统中使用Java...

    ideal安装之后配置的git资源

    ideal安装之后配置的git资源:下载解压缩之后配置到idea里面。

    GLONASS_ideal_sig_gen_l1导航_glonass_导航信号_信号仿真_IDEAL

    完成GLONASS导航信号L1、L2、L3的信号仿真

    ideal 翻译插件

    "ideal 翻译插件"是一款在IT领域广受欢迎的翻译工具,尤其适用于程序员和IT专业人士。这个插件以其高效、精准和用户友好的特性,成为许多人在处理多语言编程、阅读技术文档或者交流时的首选。下面将详细介绍这款翻译...

    ideal的主题jar包

    "ideal的主题jar包"是一个专为ideal应用设计的定制化主题资源库,它包含了各种界面样式、颜色配色方案以及可能的图标和其他视觉元素。在Java或相关的开发环境中,jar(Java Archive)文件是一种标准的归档格式,用于...

    Ideal-low-pass-filter.zip_IDEAL_理想低通_理想低通滤波_理想滤波器

    6. **文档编写**:"Ideal low-pass filter.docx"可能是对以上过程的详细描述,包括理论背景、MATLAB代码示例以及实验结果分析。阅读该文档将有助于深入理解理想低通滤波器的设计和实现。 理想低通滤波器虽然在理论...

    ideal op-amp

    ### 理想运算放大器(Ideal Operational Amplifier) #### 预览 运算放大器(简称运放或Op-Amp)是一种能够放大两个输入电压之间的差异并产生一个输出信号的集成电路(IC)。在模拟电子领域中,它是一种非常常用的...

    The ideal and reality of NVDIMM RAS

    Yasunori Goto / QI Fuli Linux Development Division Fujitsu Limited 2018内核开发者大会

    duoxiangliu_CFD_IDEAL_

    标题“duoxiangliu_CFD_IDEAL_”似乎涉及到CFD(计算流体动力学)中的一个特定概念或工具,与IDEAL(可能是“Ideal”或“ID-EAL”,表示理想化或理想的)有关。描述提到“由于CO2在临界点附近及超临界区域的低压缩...

    ques8.rar_Butterworth LPF_IDEAL_ideal lpf matlab

    Write MATLAB code that will perform frequency domain filtering ...(a) Ideal LPF. (b) Butterworth LPF. (c) Gaussian LPF. (d) Ideal HPF. (e) Butterworth HPF. (f) Gaussian HPF. (g) Homomorphic filtering.

    spree_ideal:为 Spree 添加 iDEAL 支付支持

    安装将 spree_ideal 添加到您的 Gemfile 中: gem 'spree_ideal' , :git =&gt; 'git://github.com/arein/spree_ideal.git' 对于特定版本使用适当的分支,例如 gem 'spree_ideal' , :git =&gt; 'git://github....

    Laravel开发-ideal-postcodes-laravel

    **Laravel 开发与 ideal-postcodes-laravel** 在 Laravel 框架的开发过程中,有时候我们需要集成第三方服务来增强应用的功能。`ideal-postcodes-laravel` 是一个专门为 Laravel 设计的包,它允许开发者轻松地与 ...

Global site tag (gtag.js) - Google Analytics