qt - 在 SQLite 中查询加密数据
问题描述
我想从我的 SQLite 数据库中查询加密数据。
对于每一行,我对每个值使用 XOR 操作,将其转换为 Base64,然后将其插入数据库中。
现在我需要找到一种方法来选择加密值。
IE:
SELECT *
FROM table
WHERE name_column BETWEEN 'value1' AND 'value2'
考虑到我的数据库中的大量信息,我怎样才能做到这一点而不必解密所有表以获取所需的行?
解决方案
不可能。您正在使用BETWEEN 'value1' AND 'value2'
. 数据库只能看到 XORed 字符串,BETWEEN
无法按预期工作。即使您找到了一种使用 SQLITE 即时解密字符串的方法(记住再次调用 XOR 将解密),当有数千个条目时,它也不是很有效且资源消耗。
因此,为了继续解决您的问题,您可以查看此扩展列表。SQLITE 似乎提供了一些非常基本的加密模块,它们可以用您定义的密钥对整个数据库进行异或。(不建议)
该文件描述了 SQLite 的 SQLite 加密扩展 (SEE)。SEE 允许 SQLite 读取和写入加密的数据库文件。所有数据库内容(包括元数据)都经过加密,因此对于外部观察者来说,数据库似乎是白噪声。
此文件包含执行弱 XOR 加密的 SEE 变体的完整源代码。不要认真对待这个文件。它仅用于演示目的。XOR 加密非常弱,几乎不能称为“加密”。
您想要这样做的方式将不起作用,除非您将列的所有值读取到 Qt 程序,解密它们并检查 VALUE X 是否在 A 和 B 之间。
推荐阅读
- python - 当权重、输入数据和目标值相同时,NN 的 MSE 损失如何变化?
- sql - Psql,pgAdmin 不显示插入的表,尽管项目正在运行,但我很困惑
- java - 在 PUT Spring Boot 中添加单个项目或项目列表 + 将项目列表发布到 Postman 中的 Java 列表
- scala - 当类型为 A (Scala) 时默认设置什么
- android - 两个具有相同效果的 OnClickListener(样板文件)
- wordpress - WordPress add_user_meta / update_user_meta 不工作(已解决)
- jquery - Boostrap 3 剪贴板和带有动态 ID 的工具提示
- javascript - 视频流与 nodejs 不和谐 webrtc
- python - 在不同的 CPU 上运行一个函数
- node.js - Mongoose:尝试查找存储在数组中的多个条件的文档