package com.zy.common.properties;
|
|
import com.core.common.AesUtils;
|
import com.core.common.DateUtils;
|
|
import java.io.*;
|
import java.util.Date;
|
|
/**
|
* Created by vincent on 2020/8/1
|
*/
|
public class SystemProperties {
|
|
// 激活码加密盐 -- 16位
|
public static final String SALT = "123456789qwertyu";
|
|
// 系统激活状态 (默认未激活)
|
public static boolean SYSTEM_ACTIVATION = Boolean.FALSE;
|
|
public static String getActivationCode(String fileName){
|
StringBuilder activationCode = new StringBuilder();
|
try {
|
FileReader f = new FileReader(fileName);
|
BufferedReader buf = new BufferedReader(f);
|
String s;
|
while ((s = buf.readLine()) != null) {
|
activationCode.append(s);
|
}
|
f.close();
|
buf.close();
|
} catch (FileNotFoundException ignore) {
|
|
} catch (IOException e) {
|
e.printStackTrace();
|
throw new RuntimeException("读取WMS系统激活码失败!!!\n读取路径 " + fileName);
|
}
|
return activationCode.toString();
|
}
|
|
public static boolean saveActivationCode(String filePath, String code){
|
try {
|
// 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw
|
File file = new File(filePath);// 相对路径,如果没有则要建立一个新的output。txt文件
|
if (file.exists()) {
|
file.delete();
|
}
|
boolean newFile = file.createNewFile();// 创建新文件
|
if (newFile) {
|
String sets = "attrib +H \"" + file.getAbsolutePath() + "\"";
|
Runtime.getRuntime().exec(sets);
|
BufferedWriter out = new BufferedWriter(new FileWriter(file, true));
|
out.write(code); // \r\n即为换行
|
out.flush(); // 把缓存区内容压入文件
|
out.close(); // 最后记得关闭文件
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new RuntimeException("写入WMS系统激活码失败!!!\n路径 " + filePath);
|
}
|
return true;
|
}
|
|
|
// 生成激活码
|
public static void main(String[] args) {
|
String timeStr = "2021-08-01 17:48:35";
|
Date exprTime = DateUtils.convert(timeStr);
|
String code = AesUtils.encrypt(DateUtils.convert(exprTime, DateUtils.yyyyMMddHHmmss), SystemProperties.SALT);
|
System.out.println("激活码:"+code);
|
System.out.println("有效期至:"+timeStr);
|
// saveActivationCode(SysOsType.Windows.getActivationCodePath(), code);
|
// String activationCode = getActivationCode(OSinfo.getOSname().getActivationCodePath());
|
// String decrypt = AesUtils.decrypt(activationCode, "123456789qwertyu");
|
// Date convert = DateUtils.convert(decrypt, DateUtils.yyyyMMddHHmmss);
|
// System.out.println(DateUtils.convert(convert));
|
}
|
|
}
|