V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zzy8200
V2EX  ›  分享创造

PHP 密码管理器,浏览器端 AES 加密

  •  
  •   zzy8200 ·
    zeruniverse · 2020-08-08 13:24:27 +08:00 · 2038 次点击
    这是一个创建于 1595 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/zeruniverse/Password-Manager

    一个自用的密码管理器。距离上一次在 V2EX 上发布: https://www.v2ex.com/t/303386 已经有四年了,之间也一直在更新,现在做的比较完善了再来发一遍。相对于之前版本:

    • 登陆密码->encryption key [100W 次 SHA512 PBKDF2]
    • encryption key -> login (发给 server) [1W PBKDF2]
    • server login-> DB (10W 次 PBKDF2 - SHA3-512)
    • 新设备登陆支持 Email 二次认证
    • 修复了很多 bug
    • 心跳包机制防止手机浏览器切到前台时仍然在登陆状态
    • 可选的服务器代码校验:每次登陆前校验服务器端 css/html/js 的 md5 值, 防止服务器 root 权限被 hack 导致客户端代码被修改
    • 备份文件(恢复所有保存信息只需要 登陆密码 和 备份文件, 不需要服务器设置)加密强度可选,[del]当你使用 1 亿次 pbkdf2 加密备份文件,你甚至可以把备份文件写进区块链[/del]

    没有被加密保存的内容:

    • 密码管理器的登陆用户名
    • 每次登陆尝试的 ip, 浏览器 UA, 时间
    • 创建 PIN 设备的 UA
    • 用户的邮箱
    • 用户的自定义设置

    其他所有信息 (文件名 /文件 /账号 等)均加密保存

    7 条回复    2020-08-14 22:41:15 +08:00
    chen1164162915
        1
    chen1164162915  
       2020-08-08 20:51:05 +08:00
    100W 有什么意义 和 1 次有什么区别
    zagfai
        2
    zagfai  
       2020-08-09 01:26:19 +08:00
    @chen1164162915 做过研究的告诉你:没区别。
    zzy8200
        3
    zzy8200  
    OP
       2020-08-09 02:50:08 +08:00 via iPhone
    @zagfai 区别在于暴力破解需要的时间,如果你的登陆密码本身就是无规律 256bit 的,你连一次都不用做
    zagfai
        4
    zagfai  
       2020-08-09 14:59:06 +08:00
    @zzy8200 暴力破解 SHA512 ???在逗我?
    zzy8200
        5
    zzy8200  
    OP
       2020-08-10 12:43:22 +08:00
    @zagfai 我们假设你的密码小于等于 8 位 (数字+小大写字母) (大多数人的情况),那么总共有 sum(i=1..8, 62^i)=221919451578090 种组合。一块 Tesla K20 每秒一般能做 100M 次 hash, 那么需要 25 天穷举你的一次 hash512,当然一般破解平均只需要穷举一半,也就是 13 天。如果我用两块 V100 或者专门的 ASIC 来暴力穷举,我可以一天破解。

    如果你跟我说你的用户密码都是带特殊字符,长度大于 20 位的,那你确实做一次就够了
    zzy8200
        6
    zzy8200  
    OP
       2020-08-10 12:53:37 +08:00
    @zagfai 如果你的密码是 6 位小写+大写+数字,1 次 sha512 需要 k20 破解 5 分钟,100w 次 pbkdf2 需要 10 年
    zagfai
        7
    zagfai  
       2020-08-14 22:41:15 +08:00
    @zzy8200 我再查了下资料的确是我的知识老化了。。停留在我 8 年前的阶段.。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5270 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:20 · PVG 15:20 · LAX 23:20 · JFK 02:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.