请问有没有支持加密功能的单文件数据库?

2017-02-04 00:21:33 +08:00
 gdtv

想用 php 开发一个在线记事本,记录一些非常私密的东西,首要要求是服务器被入侵后黑客也无法读取到我的文章内容.
所以想要找一个支持加密功能的单文件数据库,例如 sqlite3,但是免费版本的 sqlite3 不支持加密功能.
请问有没有类似 sqlite3 的其他的免费的支持加密功能的数据库呢?
性能不重要,自己一个人用的.

4319 次点击
所在节点    PHP
41 条回复
gdtv
2017-02-04 10:49:06 +08:00
@grayon 全文搜索,直接用 like ,因为数据量小性能不是问题
grayon
2017-02-04 11:04:28 +08:00
用移位加密或者替换加密就好了
SuperMild
2017-02-04 11:04:35 +08:00
@gdtv 一个人用数据量应该不大,临时数据库可以放在客户端 js 里,服务器的数据库一直只储存加密后的文本。
gdtv
2017-02-04 11:44:33 +08:00
@SuperMild 我看了我的谷歌文档,几年来一共有 100M 的 word 文档,如果换成 txt ,估计至少要 20M 吧, 20M 的东西塞在 js 里可以吗? 另外放 js 里似乎更不安全吧,有时在别人的电脑上网, js 会留在别人的电脑缓存里。
wwqgtxx
2017-02-04 12:09:32 +08:00
@gdtv 就是你在浏览器端用 JS 来进行 AES 加密之后再保存到服务器,这样谁拿到服务器都没啥用,当然,这样你就没法在服务器端全文搜索了
SuperMild
2017-02-04 12:49:48 +08:00
@gdtv 20M 小意思,现在宽带下载也很快,但是用手机流量访问时太费流量。缓存的问题应该可以通过设过期时限来解决吧(未确认),不过如果能在服务端用原生支持加密的数据库当然是最好的。
guxin0123
2017-02-04 16:42:37 +08:00
ms access ???
lslqtz
2017-02-04 17:40:54 +08:00
Windows BitLocker
要用的时候 exec 解密,否则加密
根据传入的密码来,但是也不是绝对安全的,因为可以修改文件抓密钥
lslqtz
2017-02-04 17:41:36 +08:00
@wwqgtxx 拿到服务器修改 JS ,将密码发往服务器一份。
lslqtz
2017-02-04 17:42:46 +08:00
建议用 HTML+AES+Chrome 扩展(读取 /写入本地文件)或 localStorage (注意备份)做成单机版的
phithon
2017-02-04 17:56:28 +08:00
免费版本的 sqlite3 其实是预留了加密、解密接口的。
给你一个我大二时候写的密码管理器,代码乱七八糟的别吐槽,但其中有 sqlite3 的加密实现,这个软件的登录密码其实就是 aes 的密钥。
https://github.com/phith0n/PasswordKeeper
这个库就是一个 dll ,理论上用什么语言操作都不影响,但我没试过用 PHP 行不行。
Khlieb
2017-02-04 18:26:49 +08:00
HSQLDB?
limhiaoing
2017-02-04 21:24:58 +08:00
gdtv
2017-02-04 23:14:58 +08:00
@limhiaoing 这个是收费的
jimzhong
2017-02-05 09:10:10 +08:00
请问 LZ 的密钥如何存储呢?是由用户在每次加密 /解密时提供还是存在服务器上?
gdtv
2017-02-05 10:54:54 +08:00
@jimzhong 密钥由用户在每次登录网站的时候输入,也就是网站的登录密码,登录成功后将密钥加密存放到 cookie 里。网站启用 https 。
jimzhong
2017-02-05 11:33:59 +08:00
@gdtv cookie 容易被盗用,用服务端的 session 会不会更好一些?
gdtv
2017-02-05 11:37:43 +08:00
@jimzhong 用 session 好些
nilai
2017-02-05 13:41:52 +08:00
SQLCipher +1
xieranmaya
2017-02-05 22:54:30 +08:00
@lslqtz 这个思路很不错啊,我第一反应也是这么做。每次修改数据后把加密后的数据全量备份到 vps 上去,甚至扔 github 上都行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX