生成证书放到程序中
FileInputStream fis = new FileInputStream("outputLicense.xml");//输入
FileOutputStream fos = new FileOutputStream("license.enc");//输出
Key key = new EncryptionDecryption().getKey(PASS_PHRASE.getBytes());
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, key);
cipher.doFinal(PASS_PHRASE.getBytes());
//将fis加密保存到fos
CipherOutputStream cos = new CipherOutputStream(fos, cipher);
byte[] bytes = new byte[1024];
while (true) {
int rc = fis.read(bytes);
if (rc == -1) {
break;
}
cos.write(bytes, 0, rc);
}
fis.close();
cos.flush();
cos.close();
fos.close();
登陆或者启动时检验证书
Key key = new EncryptionDecryption().getKey(PASS_PHRASE.getBytes());
Cipher cipher = Cipher.getInstance("AES");//加密方法
cipher.init(Cipher.DECRYPT_MODE, key);
InputStream is = new FileInputStream(PATH+"license.enc");//加密后的license文件
CipherInputStream cis = new CipherInputStream(is, cipher);
int offset = 0;
byte[] bytes = new byte[2048];
while (true)
{
int rc = cis.read(bytes, offset, bytes.length - offset);
if (rc == -1)
{
break;
}
offset += rc;
}
is.close();
cis.close();
//读入到bean中
Properties licenseProps = new Properties();
licenseProps.loadFromXML(new ByteArrayInputStream(bytes, 0, offset));
license = new License(licenseProps);