我的问题是我在struts2
网络应用程序上,我正在动态创建一个sqlite
数据库文件。我需要保护该文件(当用户下载sqlite
文件时,需要密码才能打开它,就像受密码保护的PDF一样。有没有其他方法可以完成这项任务?
答案 0 :(得分:1)
C中有一个加密库(sqlite-crypt),但是如果你想用Java做,我只需像任何其他文件一样加密文件,并为用户提供一个带密码的解密工具。请参阅file encryption/decryption in Java的此示例。
答案 1 :(得分:1)
最好的解决方案是安装SqlCipher或类似的东西,但这意味着您必须为Java环境构建和安装C扩展。
如果您在启动应用程序时解密SQLite数据库,然后在结束时对其进行加密,那么当您实际使用它时(如果应用程序异常终止),它会“暴露”。使用SqlCipher,即使在操作过程中,数据也始终是加密的。另一种方法是加密/解密存储在数据库中的单个“blob”,但是你不能搜索它们等等。
答案 2 :(得分:0)
您可以使用Zip4j(http://www.lingala.net/zip4j/)创建受密码保护的zip文件。