Java中的Sqlite3数据库密码保护

时间:2011-05-12 06:40:08

标签: java encryption sqlite password-protection

  

可能重复:
  SQLite with encryption/password protection

我的问题是我在struts2网络应用程序上,我正在动态创建一个sqlite数据库文件。我需要保护该文件(当用户下载sqlite文件时,需要密码才能打开它,就像受密码保护的PDF一样。有没有其他方法可以完成这项任务?

3 个答案:

答案 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文件。