编程与开发,写代码也是一种创作方式

前言

隐私日记本终于更新了梦寐以求的日记内容加密功能,借着这个机会,站在技术角度上跟大家聊一聊隐私日记本加密的事。阅读本文不需要具备技术基础。

保存账号密码

首先想想和大家聊聊,账号密码在隐私日记本的存储方式。遵循业界技术惯例,隐私日记本不会在数据库以及操作日志中存储用户的明文密码。

数据库存储的,是根据用户递交的密码所生成的一个独一无二的一段文本。

用户每次登录,都会用密码重新生成一段文本,并与数据库在用户注册时生成并存储的文本对比,若一致,则表示用户密码正确。而这段新生成的文本,是无法反推用户原密码的。

隐私日记本在业界惯用的密码散列函数及加盐之外,还额外增加了独有的干扰混淆,让密码破解难度更高(比如用散列碰撞的办法)。因此只要保证自己的电脑本身干净安全(比如不安装破解软件,只在官方网站下载应用程序),完全可以放心大胆的使用私人常用密码,无需担心泄露风险。

接下来,聊聊本次更新的主菜:日记内容加密。

步骤概括

  • 【下载phpcbf】到本地目录(下载地址见文档底部)

> 例如:
> Linux: ~/.composer/vendor/bin/phpcbf
> Windows: c:spacesoftsystemphpcbf.phar

  • 【创建hooks】或修改hooks文件:.git/hooks/pre-commit
  • 【复制下方脚本】到pre-commit
  • 【修改路径】代码中phpcbf和php

    Windows环境注意:

当提示

hint: The '.git/hooks/pre-commit' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.

是因为钩子文件没有运行权限,根据情况赋予钩子文件执行权限即可,例如:

chmod 700 .git/hooks/pre-commit