gpt4 book ai didi

Java类对象加密/解密和对象数据库

转载 作者:行者123 更新时间:2023-12-01 15:28:47 24 4
gpt4 key购买 nike

我有一个应用程序 ( Amnesia ),可让您创建备忘录/贴纸/警报/电话簿,并使用 db4o(嵌入式)将对象存储在 .db 文件中。

我正在考虑做的是添加加密/解密来保护数据。让我向您描述一下(我想做的事情)的过程:

首次安装并运行该应用程序时,它会要求输入密码。然后它将使用该密码来加密/解密在数据库第一次初始化时创建的演示数据,以及稍后创建的任何条目(是的,第一次运行时没有数据库。它被创建并填充了演示数据)。

每次用户打开应用程序时,它都会向他询问密码。用户输入密码,应用程序将尝试从数据库读取并解密数据。如果解密失败,则意味着用户输入了“错误”(与第一次使用的不同)密码,应用程序将退出。

我想问一下,这样可以吗?从我在谷歌上的搜索,我只找到了字符串等对象的加密/解密,而对于其他对象,唯一的教程是序列化示例。我不想每次对数据库进行保存或读取时都从文件导出/导入数据(就像所有序列化示例一样)(因为对数据库的调用非常频繁,这将是不可取的) -这样做很有成效)。

我想要的是每次写入(保存)对象时进行简单加密,以及每次从 .db 文件(嵌入 db4o)查询/检索对象/类时进行解密。

这可以做到吗?

(我的另一种选择是使用外部文件(例如 .ini)来存储加密的用户密码,然后在每次应用程序启动时检查用户输入的密码,但这不太安全)

最佳答案

不要尝试加密对象。加密数据库。

db4o 不包含自己的加密,但您可以添加它。你需要写一个自定义Storage加密数据的实现。我认为你可以通过编写 StorageDecorator 的子类来做到这一点包含正常的 FileStorage并添加加密。然后您可以通过 setting it on the FileConfiguration 使用它.

关于Java类对象加密/解密和对象数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9828222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com