| package com.zy.asrs.common.properties; | 
|   | 
|   | 
| import com.zy.asrs.framework.common.AesUtils; | 
| import com.zy.asrs.framework.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)); | 
|     } | 
|   | 
| } |