licence 设计

最近工作在做 交接他人写的 license 注册码 生成 以及 验证 跟产品相关的模块
-----------------
license 设计思想:
首先由客户生成注册码 跟客户主机ip相关 就是 hostname 加密后的码
然后 在根据 时间等随机产生序列号
客户将注册码发给公司,然后 用注册码 ,序列号 以及产品的其它相关信息
生成 .lic二进制文件或者.txt文本文件 ,
然后客户在那这个文件 通过命令的方式 将其导入到产品中。
数据结构:
product.title
product.version
product.type
product.interval
product.date
serial.number
public.key
customer.name
register.code
register.description
ak md5码 防止篡改
====================================
public static String generateSerialNum(){
StringBuffer str = new StringBuffer();
String[] randArr = {"0","1","2","...9","A","..","Z"};
for(int i=0;i<13;i++){
int index = (int)(randArr.length * Math.random());
str.append(randArr[index]);
}

Timestamp ts = new Timestamp(System.currentTimeMillis());
String timeStr = ts.toString();
timeStr = timeStr.replace("-", "");
timeStr = timeStr.replace(" ", "");
timeStr = timeStr.replace(":", "");
timeStr = timeStr.substring(0,14);
for(int i=0;i<7;i++){
int index = Integer.parseInt(timeStr.substring(i*2,i*2 + 2))% randArr.length;
str.append(randArr[index]);
}
String result = str.toString();
result = result.substring(0,4) + "-" + result.substring(4,10) + "-" + result.substring(10,16)
     + result.substring(16,20);
return result;
}
----------------
接下来 就是 加密 解密方法 以及 通过 bat 调用java程序 命令设计

你可能感兴趣的:(数据结构,工作)