Sqlite数据库加密或内存数据库实现,该怎么解决求解答

去年夏天,我在公司的小会议室里和同事小张讨论移动应用后端数据库的安全问题。
当时,我们的应用程序有一个用户数据表,用于存储有关用户的敏感信息,例如姓名和 ID 号。
小张说:“我们必须对数据库进行加密,避免数据泄露。
”我点头同意,但认为加密技术需要详细探讨。

我记得我们讨论了很长时间,最后决定使用一种简单的加密方法。
我们没有使用复杂的加密算法,而是将数据库文件中的数据替换为一些特殊字符,这样即使有人解压了apk文件,显示的数据也会出现乱码。
小张说:“这种方法简单高效,不会影响应用程序的性能。
”回想起来,这种简单的加密方法虽然有效,但绝对不如专业的加密算法安全。
等等,我突然想到,如果数据量很大的话,这个方法会不会影响数据库的读写速度呢?如果有人真的想破解,这些简单的方法可能还不够。
不过,我们当时已经解决了这个问题,至少在应用程序启动之前用户数据是安全的。
时间:2 01 9 年7 月;地点:公司小会议室。

【Go】用 DBeaver、db browser 和 SqlCipher 读取 SqlCipher 数据库

上周,我的朋友在使用 DBeaver 和 dbbrowserforSQLite 读取 SqlCipher 加密的 SQLite3 数据库时遇到了一些问题。
首先,他必须下载并安装 SQLite 和 SQLCipher 版本的 DBBrowser;必须特别注意选择专门为 SQLCipher 设计的版本。
然后打开软件,选择“OpenDatabase”;找到加密的数据库文件;输入一个非常重要的密码。

接下来,我下载了 sqlitejdbc3 .4 6 .0.0.jar,我需要使用 DBeaver 连接到加密数据库。
为DBeaver添加自定义驱动程序;将其命名为“SqlCipherV3 ”,输入正确的类名,并添加jdbccryptjar包。
当创建新的数据库连接时;使用SqlCipherV3 驱动程序;添加数据库文件路径;修改key和legacy_page_size。

处理错误时; [SQLITE_NOTADB] 如果遇到错误,您必须检查密钥和legacy_page_size是否配置正确。
请务必输入正确的密码以进行密码和密钥管理。
DBeaver的key和legacy_page_size配置也必须与数据库创建时间匹配。

软件版本兼容性也很重要。
不同的版本可能对某些功能或参数有不同的支持。
最后,适当的数据库加密和安全,确保数据安全必须进行管理。
通过这些步骤,他终于成功读取了加密的SQLite3 数据库。
但有时我想知道其他事情,比如数据库备份的重要性。
忘了它

怎么加密和解密sqlite数据库

嘿,兄弟,几年前我在开发数据库时,遇到了加密数据库的陷阱。
当时我下载的是sqlite的数据库加密版。
看起来和普通版本没什么区别,是可执行文件,但是操作起来很头疼。

记得那年夏天,我在杭州的一个项目组,负责处理加密的test.db数据库。
一开始我继续使用sqlite3 test.db命令,结果打不开数据库界面。
后来发现这个加密版本需要运行sqlite.exe test.db才可以生成新的数据库。

接下来,我需要给数据库设置一个密码,使用.sqlitetpass命令设置密码即可通过。
设置密码后,每次打开数据库时都需要使用sqlite.exe passtest.db输入密码,然后打开数据库。

加密后建表、插入数据、查询的语句和普通版本一样,但是有点繁琐。
必须先加密再操作。

然后有一天,项目组再次要求更改密码,于是我使用命令.sqlitetchangepass newpass将密码更改为newpass。
更改密码非常容易。

然后,项目组决定对数据库进行加密,所以我使用命令.sqlitetchangepass ""删除了密码,数据库恢复到正常版本,可以使用sqlite3 命令进行操作。

这个过程确实让我对这个加密数据库有了深刻的认识。
现在回想起来,当年的自己确实踩了不少陷阱。

【Go】用 DBeaver、db browser 和 SqlCipher 读取 SqlCipher 数据库

嗯...你应该知道这个加密的SQLite3 数据库...真的很尴尬。
这在 2 02 2 年发生在我身上。
那是一个加密的数据库...使用 DBeaver、dbbrowserforSQLite 和 SqlCipher 来读取它。

首先我们来谈谈SqlCipher...这个对象,你可以用来创建一个加密数据库用于测试。
使用时必须输入密码并与cipher_page_size匹配。
如果您在创建数据库时已经设置了cipher_page_size,例如4 09 6 ,那么您通常不需要担心它。
如果未设置,则必须设置 PRAGMA cipher_page_size=4 09 6 我当时就忘记了,后来才意识到。

然后是 dbbrowserforSQLite...您应该去 sqlitebrowser.org/dl 下载并安装 DBBrowserforSQLite 和 SQLCipher。
安装时请确保选择 DBBrowserforSQLCipher。
要连接到这个加密的数据库,只需打开软件并单击数据库即可。
注意自定义设置,尤其是密码输入和配置错误处理。
当时一头雾水,无法连接,后来才知道是密码错误。

我们来谈谈DBeaver...您需要去dbeaver.io下载并安装它。
这东西不带加密数据库的功能。
需要下载jdbc-cryptjar包,版本号为3 .4 6 .0.0。
安装后,您需要在创建新的数据库连接时添加自定义驱动程序。
关键配置是key和inherit_page_size。
设置数据库时这两件事必须相同。
不然见面的话肯定会出问题。

连接到该加密数据库时,选择SqlCipherV3 驱动程序并单击数据库路径。
如果出现 [SQLITE_NOTADB] 错误,则需要确保密钥和legacy_page_size 正确。
当时我纠结了很久,因为这两个价值观是对的。