產生認證放到程式中
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加密儲存到fosCipherOutputStream 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);