V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
xiaoyao9933
V2EX  ›  奇思妙想

有没有便于随身携带的哈希计算器?用于生成密码?

  •  
  •   xiaoyao9933 · 2016-03-09 23:27:50 +08:00 · 4166 次点击
    这是一个创建于 2962 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近密码被撞库撞得损失很大。 lastpass 的密码又过于复杂,而且不能在紧急时刻方便的调用出来。
    有没有类似于钥匙链大小的哈希计算器,可以让我随时随地的计算“ hash(salt+网站名)”这样的密码。

    第 1 条附言  ·  2016-03-10 10:57:40 +08:00
    准确的想法是,便携式哈希密码器。
    1. 该硬件由指纹识别模块,九宫格键盘和段显液晶屏构成。
    2. 用户需要生成密码时,只需要按上指纹,并输入 taobao 字母对应的九宫格数字(即 userstr ),即可获得唯一的密码。
    3. 原理是, privatesalt 用于记录认为设定的私有的设备密码,保存于密码器中,之后不必再次输入。指纹可以转换成唯一的 fingersalt ,该 fingersalt 不必完全区分出每个人, 1 万分之一的冲突概率即可。<userstr,version>映射表保存于密码器上,也可以导出,完成 version 与 userstr 映射的关系,用来保存密码的不同版本号,用户可以通过一个辅助按钮更新一个 str 的版本号。密码器则完成计算 code=hash(privatesalt + fingersalt+userstr+version),最终显示前六位。
    4. 用户心中可根据 code 的前六位再加上心中的一个固定后缀,构成最终待输入密码。
    5. 期望待机时间长达数月以上。
    39 条回复    2016-03-12 01:04:29 +08:00
    Strikeactor
        1
    Strikeactor  
       2016-03-09 23:29:19 +08:00
    你说银行的那个电子密码器吗
    xiaoyao9933
        2
    xiaoyao9933  
    OP
       2016-03-09 23:30:12 +08:00
    @Strikeactor 类似那个大小。但是应该有个小键盘,用来让我输入"salt+网站名"
    terence4444
        3
    terence4444  
       2016-03-09 23:33:43 +08:00
    自己写个 APP 好了
    xenme
        4
    xenme  
       2016-03-09 23:34:57 +08:00 via iPhone
    hardware password manager
    aliuwr
        5
    aliuwr  
       2016-03-09 23:38:02 +08:00
    花密
    xiaoyao9933
        6
    xiaoyao9933  
    OP
       2016-03-09 23:38:16 +08:00
    @terence4444 我觉得很多时候带手机也是很麻烦的,而且手机很容易没电,不耐久。密码计算器这个东西应该电量至少能用 1 个月。
    cxbig
        7
    cxbig  
       2016-03-09 23:39:53 +08:00
    手机上有很多 hash 软件,随便找个就行
    7654
        8
    7654  
       2016-03-09 23:43:43 +08:00
    关注
    xiaoyao9933
        9
    xiaoyao9933  
    OP
       2016-03-09 23:44:55 +08:00
    @cxbig 非智能设备的方法有么?在手机上切换 app 也是个很痛苦的过程,有的时候还不能粘贴。
    xiaoyao9933
        10
    xiaoyao9933  
    OP
       2016-03-09 23:45:46 +08:00
    @aliuwr 软件部分是这个原理,但是这个花密还是不够通用。
    cxbig
        11
    cxbig  
       2016-03-09 23:50:10 +08:00
    @xiaoyao9933 这要求恐怕很难,就连直接支持 1Password 的一键填密码的 app 都屈指可数。
    或者你自己做一个手机输入法,说不定可以实现你的目的。
    xiaoyao9933
        12
    xiaoyao9933  
    OP
       2016-03-09 23:52:26 +08:00
    最好还自带一个指纹识别模块,指纹就会自动映射为一个独一无二的 salt 。
    这样在输入密码的时候,人们只需要放上手指,同时只要输入 taobao 字样即可。别人捡走,或者即使看着你输入了 taobao 也根本无法破解密码。
    lovez
        13
    lovez  
       2016-03-10 00:09:56 +08:00 via Android
    好想法,试着做一个
    Tink
        14
    Tink  
       2016-03-10 00:50:12 +08:00 via iPhone
    生成完密码之后呢?又手工敲到电脑里?
    brucewzp
        15
    brucewzp  
       2016-03-10 00:57:43 +08:00
    写个 watch app ?
    dapang1221
        16
    dapang1221  
       2016-03-10 01:11:10 +08:00 via Android
    有戏。硬件是一个 hid 设备,有两个输入量,一个是指纹,一个是网站名,盐写在硬件里。光标停留在待输入密码的地方,然后插入这个设备,识别指纹,输入网站域名,然后这个设备模拟键盘来输入经过运算后的密码。设备可以用 stm32 的 mcu ,或者简单一点直接上 arduino 。如果再复杂一点,可以设计一个上位机程序,这样可以直接获得活动窗口的句柄,得知网站域名,然后输入量也只有指纹了。整体的安全性来讲,盐是主要的,不能泄露,所以最好再加一个算法,通过密钥+网站名来生成盐,这样安全性就更高了。(不过这么麻烦也只为了防止撞库……防不了键盘监听和中间人攻击。。)
    abelyao
        17
    abelyao  
       2016-03-10 02:13:40 +08:00
    无法想象手工敲入电脑里 4$V1F$QTxaRYqt2k 这样的密码…
    dphdjy
        18
    dphdjy  
       2016-03-10 02:14:31 +08:00 via Android
    vibbow
        19
    vibbow  
       2016-03-10 02:47:48 +08:00 via Android
    lz 可以买个旧款文曲星, 160 x 80 黑白屏那种。
    三种编程语言可选,任你发挥。
    电池用个半年一年还是没问题的。
    jciba5n4y6u
        20
    jciba5n4y6u  
       2016-03-10 05:55:15 +08:00
    我写了个脚本,动态生成用户名和密码,输入是网站名+一个定时更换的字符串,输出是用户名、密码。

    让撞库的使劲撞去吧
    DT27
        21
    DT27  
       2016-03-10 08:17:04 +08:00
    lastpass 有手机客户端,很方便。
    873681136
        22
    873681136  
       2016-03-10 09:09:37 +08:00 via iPhone
    指纹只能匹配,不能映射
    zhujinliang
        23
    zhujinliang  
       2016-03-10 09:14:26 +08:00
    这种根据 hash 算法的,如果你有 n 个站用这种方式生成了密码,其中一个站由于某种原因需要修改密码了,怎么办? n 个站都跟着改密码?
    bearqq
        24
    bearqq  
       2016-03-10 09:29:50 +08:00 via Android
    不应该时候用(如) python 写个脚本放手机里 /web 服务?还可以复制什么的。。
    superbear
        25
    superbear  
       2016-03-10 10:30:32 +08:00
    浏览器控制台 console 行不行?
    julor
        26
    julor  
       2016-03-10 10:33:27 +08:00 via Android
    用指纹识别不就行了,第三方网站就用 qq ,微信登陆!何必这么麻烦?
    galenzhao
        27
    galenzhao  
       2016-03-10 10:34:38 +08:00
    正在设计中,准备在 kickstart 发布,
    xiaoyao9933
        28
    xiaoyao9933  
    OP
       2016-03-10 10:36:56 +08:00
    @Tink
    @abelyao 使用者可以只采用 md5 码的前八位,然后根据自己制定的规则,比如将第二个遇到的字母大写。尽量降低拼写难度,不引入乱起八遭的符号。
    xiaoyao9933
        29
    xiaoyao9933  
    OP
       2016-03-10 10:39:25 +08:00
    @vibbow 哈哈倒是这个意思。不过我还是希望有指纹模块和 9 宫格的小键盘,降低输入难度。
    x86
        30
    x86  
       2016-03-10 10:41:35 +08:00
    xiaoyao9933
        31
    xiaoyao9933  
    OP
       2016-03-10 10:45:45 +08:00
    @dapang1221 对,我就是类似的一个思路。

    @DT27 我觉得手机客户端又不能自动填写密码,而且 app 的很多密码是不能复制粘贴的,你只能先将密码誊写到纸上,然后切换软件,再填过去。

    @zhujinliang 可以考虑 salt + str + ( version )构成方式。 version 信息可以保存为一个映射表 str->version ,该映射表可以简单存储。 version 由密码器自动根据 str 生成,不需要用户填写,用户只需要输入 str 。

    @galenzhao 兄弟做到什么程度了?
    fleer
        32
    fleer  
       2016-03-10 10:49:30 +08:00
    我记得见过这样的设备,基于指纹识别,自动输入密码。。
    fleer
        33
    fleer  
       2016-03-10 11:08:57 +08:00
    http://tech.feng.com/2015-08-07/Password-all-forget-_621032.shtml 和这个类似,但是我记忆中的那个是国产的。
    1OF7G
        34
    1OF7G  
       2016-03-10 11:20:12 +08:00 via Android
    我的密码一般是 6 到 8 位随机大小写字母+数字,一般都用 6 位(62^6=568 亿排列),短点因为懒+好记
    我觉得在线账户安全的薄弱处不在密码复杂度上, 16 位随机码不会比 8 位随机的安全多少。
    反而应该更注重:不要使用相同密码;定期修改密码;注意使用环境等等,大部分问题都出在这些地方(当然还有 123456 之类的弱密码)。
    galenzhao
        35
    galenzhao  
       2016-03-10 12:54:38 +08:00
    @xiaoyao9933

    没有你想的指纹的,
    功能原型已经搞定,在做密码组管理程序,

    我们这个是可以插在 u 口自动输入密码,

    第一个版本是硬件拨码选择密码组,
    第二版是添加了 BLE 手机端 app 认证,

    小巧、无需额外供电、成本低
    galenzhao
        36
    galenzhao  
       2016-03-10 13:14:15 +08:00
    @xiaoyao9933

    我去!!!
    和这个比较像 http://tech.feng.com/2015-08-07/Password-all-forget-_621032.shtml

    我咋以前没注意过有这类的呢。。。

    我是最近有个账号被社工了,为了把我所有账号的密码都 random ,不做任何算法生成才设计了新的硬件输入器
    sampeng
        37
    sampeng  
       2016-03-10 15:26:44 +08:00
    1password 还不够好用么。。。
    Izual
        38
    Izual  
       2016-03-12 01:04:01 +08:00
    @xiaoyao9933
    八位密码只有 1-9A-F ,算不上强密码吧。
    Izual
        39
    Izual  
       2016-03-12 01:04:29 +08:00
    @Izual
    手癌打错了……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3371 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 00:17 · PVG 08:17 · LAX 17:17 · JFK 20:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.