随机生成序列号并验证设置程序有效期

package com.simpro.util;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class ConfigSerialNumber {
	//使用main方法生成序列号
	public static void main(String[] args) {
		// 获取当前时间的毫秒值
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("当前时间格式转换:"+sdf.format(date));  
        System.out.println("当前时间毫秒值:"+date.getTime()); 
        
        System.out.println("—————当前时间毫秒值:15832216 47620—————————————————————————");  
        //获取后3.5个月时间
        Date dBefore = new Date();
		Calendar calendar = Calendar.getInstance(); //得到日历
		calendar.setTime(date);//把当前时间赋给日历
		calendar.add(Calendar.MONTH, 3);  //设置为后3月
		dBefore = calendar.getTime();   //得到后3月的时间
		System.out.println("以后当前时间格式转换:"+sdf.format(dBefore));  
        System.out.println("以后时间毫秒值:"+dBefore.getTime()); 
		
        System.out.println("——————以后时间毫秒值:159117 0 4     47620————————————————————————");
        //随机获取三位数
        String myStr = Integer.toString((int)(Math.random()*900 + 100));
        System.out.println("随机获取三位数:"+myStr);
        //***4-15**-*911*-7***(*表示随机产生的数据值)
        String csn = "";
        csn = Integer.toString((int)(Math.random()*900 + 100))+"4-"
        	+ "15"+Integer.toString((int)(Math.random()*900 + 100)).substring(0,2)+"-"
        	+Integer.toString((int)(Math.random()*900 + 100)).subSequence (0,1)+"911-"
        	+"7"+Integer.toString((int)(Math.random()*900 + 100));
        //得出标椎序列码
        System.out.println("得出标椎序列码:"+csn);
        //得出标椎序列码:1264-1552-6911-7181
        //得出标椎序列码:1214-1596-1911-7646
        //得出标椎序列码:3524-1557-8911-7390
        //得出标椎序列码:9064-1569-5911-7567
        System.out.println("序列号验证:"+checkCSN(csn));
	}

//这里就是简单地解密
	public static boolean checkCSN(String csn) {
		boolean res = true;
		String[] s1=csn.split("-");
		for(int i=0;i<s1.length;i++){
	        //循环输出结果
	         System.out.println(s1[i]);
	     }
		//获取第二组前两位
		String arr1 = "0"+s1[0].substring(s1[0].length()-1);
		System.out.println("1:"+arr1);

		String arr2 = s1[1].substring(0,2);
		System.out.println("2:"+arr2);

		String arr3 = s1[2].substring(s1[2].length()-3);
		System.out.println("3:"+arr3);

		String arr4 = s1[3].subSequence(0,1).toString();
		System.out.println("4:"+arr4);

		String ccsn = arr2+arr3+arr4+arr1+"47620";
		System.out.println("转译出的日期:"+ccsn);
		if(new Date().getTime()>Long.valueOf(ccsn)) {
			//期限已到
			res = false;
		}else {
			//正常使用
			res = true;
		}
		return res;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值