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