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 = "2020-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)); } }