我有一個JAR文件,它取決於5個不同的文本文件。 JAR文件讀取文本文件並給出結果。我唯一的問題是我想隱藏文本文件,以便沒有人能看到它。請建議我如何將這些文本文件添加到JAR包中。如果有人知道JAR-TO-EXE工具,以便將文本文件隱藏到EXE中,那麼它也是可以接受的。將依賴文本文件添加到JAR文件
回答
我建議你看看序列化作爲一種可能的解決方案,這裏有一個鏈接。
http://www.tutorialspoint.com/java/java_serialization.htm
我不是100%肯定它不是可能呢重建你的數據,但...該文件的內容將definently是當你打開它(即使你不想使用胡言亂語它爲此學習反正它非常有用)。編輯:我想詳細說明一下,因此你知道它基本上是什麼(如果你不這樣做)......想象你有一個包含對象的數組列表(你需要保存的數據,比如你自己的員工類或者無論如何,你可以基於序列化將列表序列化爲一個文件,當你想要加載數據時,只需反序列化它,保存數據的文件將包含亂碼給任何打開它的人,它實際上比使用平均文件,在那裏你通常必須處理閱讀每一行等,還記得你必須在你需要做的類中實現Serializable接口。
讓你成爲一個簡單的例子,下面我使用了一個非常簡單的類測試只包含一個名稱:
public class Testing implements Serializable {
private String name;
public Testing(String name) {
this.setName(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
現在要序列化這個類的一個對象,記住你可以用對象的數組列表來做到這一點,但它不會在靜態上下文中工作!所以你不能用主要的方法fx來測試它。
File file = new File("test.dat");
if (!file.exists()) file.createNewFile();
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("test.dat"));
out.writeObject(new Testing("testobject"));
} catch(Exception ex) {}
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream("test.dat"));
Testing loadedObject = (Testing) in.readObject();
System.out.println(loadedObject.getName());
} catch(Exception ex){}
上面的代碼可以在main方法中,如果你想看到它的行動,只需複製粘貼並導入所需的東西進行測試。
編輯:應該提到,我讀過它可以在序列化對象之前通過使用包裝類來使用簡單但安全的加密方法。但是你將不得不閱讀,儘管這將是一個非常優雅的解決方案。
您可以'隱藏'jar中的文件,但它們仍然可以訪問。只需解壓縮該jar即可訪問其內容。如果這些文件無論如何都是'敏感'的,我會建議看看對它們進行加密。
加密本身是一個廣泛的主題,需要真正的理解來創建一個安全的解決方案,但下面有一個使用java加密和解密數據的基本示例。
http://www.software-architect.net/articles/using-strong-encryption-in-java/introduction.html
EDIT
鏈路建議使用以下:
相同的代碼以產生所述 'aesKey':
String key = "Bar12345Bar12345"; // 128 bit key
// Create key and cipher
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
要加密的字符串:
// encrypt the text
String toEncrypt = "Your text.";
cipher.init(Cipher.ENCRYPT_MODE, aesKey);
byte[] encryptedBytes = cipher.doFinal(toEncrypt.getBytes());
String encrypted = new String(encryptedBytes);
要解密的字符串:
// decrypt the text
cipher.init(Cipher.DECRYPT_MODE, aesKey);
String decrypted = new String(cipher.doFinal(encrypted.getBytes()));
文件中的存儲的文本將完全不知所云。還有其他的事情要考慮。例如,如果將密鑰存儲在某個類中,則可以將其提取出來。但是,採取一切安全措施後,創造它的複雜性必須與反對它的困難相平衡。這個級別最終取決於您所保護的信息的性質。
如果你只是要打包的罐子裏面的文本文件,並把它們的secruity是不是一個問題,請參見以下(假設你使用eclipse):
請在JAVA中向我發送解密代碼,因爲您提供的鏈接僅包含加密的代碼。 – user2451844
已經根據提供的鏈接添加了代碼示例。 – GoldenJam
感謝您提供的解決方案。現在,如果我將文本文件打包到jar中,然後使用jar-to-exe工具將我現有的jar轉換爲exe。是否有可能以這種方式隱藏文本文件? – user2451844
- 1. 添加jar文件依賴關係
- 2. 如何將外部依賴項(jar文件)添加到android studio?
- 3. Maven:將依賴關係和spring bean配置文件添加到jar文件中
- 4. 添加本地jar文件/插件作爲maven依賴項
- 5. 將.jar文件添加到React本機
- 6. 將jar庫添加到jar文件中
- 7. 如何添加依賴文件到Scala?
- 8. 如何添加jar非osgi jar文件作爲依賴到eclipse插件?
- 9. 是否可以將本地依賴添加到.podspec文件?
- 10. 如何添加.jar文件依賴使用m2eclipse插件
- 11. 如何將依賴關係jar文件包含到jar文件中
- 12. 如何將jar文件添加到jar文件中?
- 13. 如何從lib文件夾中添加Maven依賴關係jar文件
- 14. 在名爲Android的文件夾中添加* .jar文件依賴關係
- 15. 需要創建Java JAR文件並將其添加到Maven依賴項
- 16. 在android項目中添加外部依賴jar文件
- 17. 將Jar文件添加到Maven
- 18. 將屬性文件添加到jar
- 19. 如何將sourceset添加到jar文件?
- 20. 將庫路徑添加到jar文件
- 21. Gradle - 將單個文件添加到JAR
- 22. 將Jar文件添加到WEB-INF/lib
- 23. 將.jar文件添加到類路徑
- 24. 將外部文件添加到jar
- 25. 將.dll文件添加到jar
- 26. 如何將jar文件添加到Classpath?
- 27. 添加Jar文件
- 28. 以編程方式將文件添加到TFS和依賴文件
- 29. spark maven jar文件依賴關係
- 30. Jar文件能夠互相依賴
我假設它是你的代碼,你自己創建了jar文件? – GoldenJam