有没有便于随身携带的哈希计算器?用于生成密码? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

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

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

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

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

    最近密码被撞库撞得损失很大。 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  
    PRO
       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     Solana     5499 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 06:37 PVG 14:37 LAX 22:37 JFK 01:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86