想用 php 开发一个在线记事本,记录一些非常私密的东西,首要要求是服务器被入侵后黑客也无法读取到我的文章内容.
所以想要找一个支持加密功能的单文件数据库,例如 sqlite3,但是免费版本的 sqlite3 不支持加密功能.
请问有没有类似 sqlite3 的其他的免费的支持加密功能的数据库呢?
性能不重要,自己一个人用的.
|      1honeycomb      2017-02-04 00:35:06 +08:00 via Android keepass 数据库格式? | 
|  |      2SingeeKing PRO 非对称加密就可以了吧 | 
|  |      3yexiaoxing      2017-02-04 01:14:26 +08:00 换个思路,在 php 做加解密? | 
|      4SuperMild      2017-02-04 01:23:01 +08:00  1 php 加密后入数据库,缺点是不能搜索,但由于是一个人用数据量很小,可以每次把整个数据库读出来解密后放进一个临时数据库,这样就能搜索了,用完删除临时数据库。 | 
|  |      5springz      2017-02-04 01:36:49 +08:00  1 DES 加密后密文存进数据库呗,你自己掌握 key | 
|  |      6ryd994      2017-02-04 05:25:31 +08:00 via Android 换个思路, luks 自己要用再挂载 | 
|  |      7cnwtex      2017-02-04 08:31:38 +08:00 via iPhone 只要 PHP 能读写,入侵的人就能读写,这种场景谈什么加密 | 
|  |      8wwqgtxx      2017-02-04 08:39:31 +08:00 最简单的办法,在网页端用 JS 加密,密码自己掌握即可,就算破了你的服务器也拿不到有用的数据 | 
|  |      9zjgsamuel      2017-02-04 08:47:26 +08:00 额~~  最近也在构思自己的一个日记应用   有类似场景的需求  LZ 找到好的解决方案 记得分享一下哈~ | 
|      10missdeer      2017-02-04 08:49:39 +08:00 基于 sqlite3 的 sqlcipher 有免费版本的 | 
|      12gdtv OP @yexiaoxing 在 php 做加解密,这样在数据库里就无法全文搜索了,就无法搜索文章了 | 
|      16gdtv OP @SuperMild 你说的方案我也有考虑过,但我怕数据量太大。另外放进一个临时数据库,万一没来得及删除服务器就被黑了。。。。 | 
|  |      19grayon      2017-02-04 10:25:22 +08:00 全文搜索你怎么做?分词做索引啊 | 
|  |      20springz      2017-02-04 10:39:28 +08:00 BerkeleyDB | 
|  |      22grayon      2017-02-04 11:04:28 +08:00 用移位加密或者替换加密就好了 | 
|      23SuperMild      2017-02-04 11:04:35 +08:00 via iPhone @gdtv 一个人用数据量应该不大,临时数据库可以放在客户端 js 里,服务器的数据库一直只储存加密后的文本。 | 
|      24gdtv OP @SuperMild 我看了我的谷歌文档,几年来一共有 100M 的 word 文档,如果换成 txt ,估计至少要 20M 吧, 20M 的东西塞在 js 里可以吗? 另外放 js 里似乎更不安全吧,有时在别人的电脑上网, js 会留在别人的电脑缓存里。 | 
|  |      25wwqgtxx      2017-02-04 12:09:32 +08:00 @gdtv 就是你在浏览器端用 JS 来进行 AES 加密之后再保存到服务器,这样谁拿到服务器都没啥用,当然,这样你就没法在服务器端全文搜索了 | 
|      26SuperMild      2017-02-04 12:49:48 +08:00 @gdtv 20M 小意思,现在宽带下载也很快,但是用手机流量访问时太费流量。缓存的问题应该可以通过设过期时限来解决吧(未确认),不过如果能在服务端用原生支持加密的数据库当然是最好的。 | 
|      27guxin0123      2017-02-04 16:42:37 +08:00 ms access ??? | 
|  |      28lslqtz      2017-02-04 17:40:54 +08:00 via iPhone Windows BitLocker 要用的时候 exec 解密,否则加密 根据传入的密码来,但是也不是绝对安全的,因为可以修改文件抓密钥 | 
|  |      30lslqtz      2017-02-04 17:42:46 +08:00 via iPhone 建议用 HTML+AES+Chrome 扩展(读取 /写入本地文件)或 localStorage (注意备份)做成单机版的 | 
|  |      31phithon      2017-02-04 17:56:28 +08:00  1 免费版本的 sqlite3 其实是预留了加密、解密接口的。 给你一个我大二时候写的密码管理器,代码乱七八糟的别吐槽,但其中有 sqlite3 的加密实现,这个软件的登录密码其实就是 aes 的密钥。 https://github.com/phith0n/PasswordKeeper 这个库就是一个 dll ,理论上用什么语言操作都不影响,但我没试过用 PHP 行不行。 | 
|  |      32Khlieb      2017-02-04 18:26:49 +08:00 via Android HSQLDB? | 
|  |      33limhiaoing      2017-02-04 21:24:58 +08:00 | 
|      34gdtv OP @limhiaoing 这个是收费的 | 
|      35jimzhong      2017-02-05 09:10:10 +08:00 请问 LZ 的密钥如何存储呢?是由用户在每次加密 /解密时提供还是存在服务器上? | 
|      36gdtv OP @jimzhong 密钥由用户在每次登录网站的时候输入,也就是网站的登录密码,登录成功后将密钥加密存放到 cookie 里。网站启用 https 。 | 
|  |      39nilai      2017-02-05 13:41:52 +08:00 SQLCipher +1 | 
|  |      40xieranmaya      2017-02-05 22:54:30 +08:00 @lslqtz 这个思路很不错啊,我第一反应也是这么做。每次修改数据后把加密后的数据全量备份到 vps 上去,甚至扔 github 上都行 |