1. import java.io.*;
  2.  
  3. public class Test{
  4. private static final String LL = "Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.";
  5. public String getSerial(String userId, String licenseNum){
  6. java.util.Calendar cal = java.util.Calendar.getInstance();
  7. cal.add(1, 3);
  8. cal.add(6, -1);
  9. java.text.NumberFormat nf = new java.text.DecimalFormat("000");
  10. licenseNum = nf.format(Integer.valueOf(licenseNum));
  11. String verTime = new StringBuilder("-").append(new java.text.
  12. SimpleDateFormat("yyMMdd").format(cal.getTime())).append("0").
  13. toString();
  14. String type = "YE3MP-";
  15. String need = new StringBuilder(userId.substring(0, 1)).append(type).
  16. append("300").append(licenseNum).append(verTime).toString();
  17. String dx = new StringBuilder(need).append(LL).append(userId).toString();
  18. int suf = this.decode(dx);
  19. String code = new StringBuilder(need).append(String.valueOf(suf)).
  20. toString();
  21. return this.change(code);
  22. }
  23.  
  24. private int decode(String s) {
  25. int i;
  26. char[] ac;
  27. int j;
  28. int k;
  29. i = 0;
  30. ac = s.toCharArray();
  31. j = 0;
  32. k = ac.length;
  33. while (j < k) {
  34. i = (31 * i) + ac[j];
  35. j++;
  36. }
  37. return Math.abs(i);
  38. }
  39.  
  40. private String change(String s) {
  41. byte[] abyte0;
  42. char[] ac;
  43. int i;
  44. int k;
  45. int j;
  46. abyte0 = s.getBytes();
  47. ac = new char[s.length()];
  48. i = 0;
  49. k = abyte0.length;
  50. while (i < k) {
  51. j = abyte0[i];
  52. if ((j >= 48) && (j <= 57)) {
  53. j = (((j - 48) + 5) % 10) + 48;
  54. } else if ((j >= 65) && (j <= 90)) {
  55. j = (((j - 65) + 13) % 26) + 65;
  56. } else if ((j >= 97) && (j <= 122)) {
  57. j = (((j - 97) + 13) % 26) + 97;
  58. }
  59. ac[i] = (char) j;
  60. i++;
  61. }
  62. return String.valueOf(ac);
  63. }
  64.  
  65. public Test() {
  66. super();
  67. }
  68.  
  69. public static void main(String[] args){
  70. try {
  71. System.out.println("please input register name:");
  72. BufferedReader reader = new BufferedReader(new InputStreamReader(
  73. System.in));
  74. String userId = null;
  75. userId = reader.readLine();
  76. Test myeclipsegen = new Test();
  77. String res = myeclipsegen.getSerial(userId, "20");
  78. System.out.println("Serial:" + res);
  79. reader.readLine();
  80. } catch (IOException ex){
  81. }
  82. }
  83. }

myeclipse6.0 序列号生成器源码的更多相关文章

  1. Android7.0 Phone应用源码分析(二) phone来电流程分析

    接上篇博文:Android7.0 Phone应用源码分析(一) phone拨号流程分析 今天我们再来分析下Android7.0 的phone的来电流程 1.1TelephonyFramework 当有 ...

  2. Android7.0 Phone应用源码分析(一) phone拨号流程分析

    1.1 dialer拨号 拨号盘点击拨号DialpadFragment的onClick方法会被调用 public void onClick(View view) { int resId = view. ...

  3. robotlegs2.0框架实例源码带注释

    robotlegs2.0框架实例源码带注释 Robotlegs2的Starling扩展 有个老外写了robotleges2的starling扩展,地址是 https://github.com/brea ...

  4. Android7.0 Phone应用源码分析(三) phone拒接流程分析

    本文主要分析Android拒接电话的流程,下面先来看一下拒接电话流程时序图 步骤1:滑动按钮到拒接图标,会调用到AnswerFragment的onDecline方法 com.android.incal ...

  5. 购买的wemall 6.0商城系统源码分享

    使用方法 1.解压目录 2.cd wemall6 && npm i 3.配置config下的config.json 4.npm start 摒弃以往的开发框架thinkphp,使用no ...

  6. Android7.0 Phone应用源码分析(四) phone挂断流程分析

    电话挂断分为本地挂断和远程挂断,下面我们就针对这两种情况各做分析 先来看下本地挂断电话的时序图: 步骤1:点击通话界面的挂断按钮,会调用到CallCardPresenter的endCallClicke ...

  7. spring5.0.2.RELEASE源码环境构建

    Spring5 源码下载注意事项 首先你的JDK 需要升级到1.8 以上.Spring3.0 开始,Spring 源码采用github 托管,不再提供官网下载链接.大家可自行去github 网站下载, ...

  8. spring-boot-2.0.3启动源码篇二 - run方法(一)之SpringApplicationRunListener

    前言 Springboot启动源码系列还只写了一篇,已经过去一周,又到了每周一更的时间了(是不是很熟悉?),大家有没有很期待了?我会尽量保证启动源码系列每周一更,争取不让大家每周的期望落空.一周之中可 ...

  9. spring-boot-2.0.3启动源码篇 - 阶段总结

    前言 开心一刻 朋友喜欢去按摩,第一次推门进来的是一个学生美眉,感觉还不错:后来经常去,有时是护士,有时是空姐,有时候是教师.昨天晚上推门进去的是一个女警察,长得贼好看,身材也很好,朋友嗷的一声就扑上 ...

随机推荐

  1. PL/0 词法分析器

    PL/0 词法分析器 #include<stdio.h> #include <ctype.h> #include <stdlib.h> #include <s ...

  2. codeforces 711E E. ZS and The Birthday Paradox(数学+概率)

    题目链接: E. ZS and The Birthday Paradox. time limit per test 2 seconds memory limit per test 256 megaby ...

  3. IL查看委托

    查看委托的IL 通过IL来查看委托的原理, 委托示例代码 写一个委托的类如下 using System;   namespace MyCollection { //定义一个类,该类包含两个静态方法 c ...

  4. vuejs过滤器

    结合管道符 | {{messageOne | capitalize}} capitalize 首字母大写 {{messageOne | uppercase}} uppercase 大写字母 {{mes ...

  5. WinForm 快捷键设置

    一.窗体快捷键,只在窗体上有效果 首先在form_load的时候写上this.KeyPreview=true;//表示窗体接受按键事件 然后如下 private void Frm_KeyDown(ob ...

  6. <global-results>

    全局result(global-results)有很多时候一个<result>可供很多<action>使用,这时可以使用<global-results>标签来定义全 ...

  7. 022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装

    资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类 ...

  8. 如何在Web服务器80端口上开启SSH服务

    本文所讨论的网络端口复用并非指网络编程中采用SO_REUSEADDR选项的 Socket Bind 复用.它更像是一个带特定路由功能的端口转发工具,在应用层实现. 背景 笔者所处网络中防火墙只开放了一 ...

  9. Swift3.0 iOS获取当前时间 - 年月日时分秒星期

    Swift3.0 iOS获取当前时间 - 年月日时分秒星期func getTimes() -> [Int] { var timers: [Int] = [] // 返回的数组 let calen ...

  10. WorldWind源码剖析系列:WorldWind实时确定、更新、初始化和渲染地形和纹理数据

    WorldWind实时确定.更新.初始化和渲染地形和纹理数据 当用户点击WorldWind中的地球时,首先响应的是WorldWindow.OnPaint()函数,后续程序的调用流程如下图所示. 零散知 ...