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

唐诗密码本——用唐诗生成随机密码

  •  
  •   mfhh · 2015-09-18 17:22:22 +08:00 · 8560 次点击
    这是一个创建于 3352 天前的主题,其中的信息可能已经有所发展或是发生改变。

    唐诗密码本

    ss

    怎么使用?

    如果你不知道怎么编一个复杂的密码,那么随机生成一个. 比如"SDSGB9H". 可是这是个什么鬼怎么记?! 来,背一句唐诗就好了. "上帝深宫闭九阍". 拼音首字就是. 而且有数字的哦. 密码级别很高的. 如果有天忘了,凭模糊的印象去翻李商隐的诗集. 或许能找出来的.

    灵感词怎么用?

    如果你输入了灵感词,密码句子里会尽量包含这个词.但是不保证有. 比如你希望给自己的工商银行账号起密码,但是又怕不好记.可以以"工商"为灵感词.生成"GSCWQ , NMDSB" (工商彻屋去,牛马登山避)(大水-白居易). 如果希望有数字 3.可以用"三"做灵感词,得到如"MJZWWXY , XZ3ZBYR"(盟经早晚闻仙语,学种三芝伴羽人)这样的密码.

    开源项目

    这是一个开源项目, https://github.com/fangj/mima, 用 express,angular 搭建. 欢迎小伙伴到 github 上点小星星.

    开发者

    npm install
    npm start
    访问 http://localhost:3000
    

    感谢

    本项目使用了这些小伙伴的贡献:

    关于我

    方健,湖建血统的南京土著. 养着一只肥白的中华田园猫. 有很多有趣的想法,就是没空做 T T.

    加微信的同学请给我发红包. 谢谢!

    微信

    22 条回复    2020-01-20 17:32:50 +08:00
    lhbc
        1
    lhbc  
       2015-09-18 17:30:54 +08:00   ❤️ 1
    已加入密码库全家桶,感谢楼主。
    mfhh
        2
    mfhh  
    OP
       2015-09-18 17:40:15 +08:00
    忘了发链接了 http://mima.treenote.net
    怎么修改自己的主题?
    oott123
        3
    oott123  
       2015-09-18 17:43:13 +08:00
    楼主你有没有想过,这样其实就只是一个大字典,你这个项目,危害性不要太大……
    hging
        4
    hging  
       2015-09-18 17:44:25 +08:00
    1L.哈哈哈哈哈
    mfhh
        5
    mfhh  
    OP
       2015-09-18 17:48:42 +08:00
    @oott123 这个大字典就是全唐诗。。。 暴力破解如果用这么大的字典。暴力破解意义就不大了。如果真有人这么干。我就改文学作品库。。
    mfhh
        6
    mfhh  
    OP
       2015-09-18 17:50:35 +08:00
    @oott123 使用者还可以切换大小写组合,特殊标点断句什么的往里面掺沙子。
    cloudy9101
        7
    cloudy9101  
       2015-09-18 18:29:25 +08:00
    有创意, 但是我不想背诗... 2333
    lonelygo
        8
    lonelygo  
       2015-09-18 19:07:38 +08:00
    是不是考虑再加一个个人定义的转码逻辑?
    这样就是进了 1L 密码库全家桶,依然无法逆向
    即使是个大字典,少了转码,别人依然搞不定
    ryd994
        9
    ryd994  
       2015-09-18 21:39:10 +08:00 via Android
    @lonelygo 所谓字典,就是以数量盖复杂度。只要知道唐诗出现过的组合概率更高就行了。
    realpg
        10
    realpg  
       2015-09-18 21:51:17 +08:00
    @mfhh
    全唐诗首字母缩写固定组合这么点数据量,作为字典根本不叫大好不好……
    没有个 GB 的容量哪好意思说叫大字典
    Jocktaa
        11
    Jocktaa  
       2015-09-18 22:21:26 +08:00
    靠,以后不能拿唐诗做密码了。。。。
    echo1937
        12
    echo1937  
       2015-09-18 22:23:40 +08:00
    随机密码的优点在于长度和随机性,唐诗首字母看似随机又好记,其实就是就是个字典,而且以全唐诗那点数据量,加上宋词也不会太大(况且大部分人懂的唐诗宋词也就那么一点)。

    如果改变转码定义,那么随机性会增加,好记程度又会降低,似乎无法兼顾。
    vpncup
        13
    vpncup  
       2015-09-18 22:31:25 +08:00 via iPhone
    可以在规则中加入打油诗
    Marfal
        14
    Marfal  
       2015-09-18 22:40:08 +08:00
    @mfhh 没强度的,自己用还可以,用的人多了分分钟破解。
    mfhh
        15
    mfhh  
    OP
       2015-09-19 09:03:40 +08:00
    人类密码=好记+随机性
    密码本解决的是=好记+伪随机

    我同意 @lonelygo 说的要加个人转码逻辑。设计上就是这么考虑的。但是这个转码逻辑不加在程序里,留给用户自己。不是作者偷懒,而是这样才安全。

    无论程序如何加规则,出来的都是大字典。
    最终使用的时候建议是用户根据自己的个性掺沙子(用户个性规则)。
    最终密码 = 程序建议密码(好记+伪随机)+ 用户个性规则(用户个人方便记忆+更强的随机)

    比如密码本生成全的是大写的『 MJZWWXY , XZ3ZBYR 』 这是个种子密码。
    用户在这个基础上有无数中排列组合
    『 MJZWWXY , XZ3ZBYR 』 ->

    简单无标点: MJZWWXYXZ3ZBYR
    替换标点: MJZWWXY#XZ3ZBYR
    每句取首 2 个大写,其余小写: MJzwxy,XZ3zbyr
    每句只取前四个字: MJZWXZ3Z
    加上用户偏好的固定数字: MJZWXZ3Z1314

    还有类似『飞流直下三千尺』,程序给的建议是 FLZX3QC. 用户完全可以用 flzx3000 ,或者 flzx3kc

    这样的排列组合对原字典扩大很多种可能,同时,因为『沙子』不在程序里,所以更加安全。

    沙子用户自己掺有 2 个好处:
    1. 自己想出来的沙子好记
    2. 沙子在用户脑子里:安全

    如果既然要用户费脑子想沙子还要密码本有什么用?

    沙子本身可以安全性很差,可能只有 1~2 位,可能用户长期都用一样的沙子。
    real_password= pesdo_password (机器生成的)+simple_password (用户生成的)

    沙子本身可能只是一个变幻规则,要作用到一个字符串上才能成为实体密码
    real_password=userTransfer (pesdo_password )

    沙子对用户本人是好记的。有较弱的安全度。

    伪密码对知道明文的所有人是好记的。有一般的安全度。

    伪密码+沙子=只对用户本人是好记的。有较强的安全度。

    自己搜了下『唐诗密码本』,发现下文,不是我写的。想法很相似。
    http://www.360doc.com/content/10/0520/16/114824_28577582.shtml
    mfhh
        16
    mfhh  
    OP
       2015-09-19 09:35:24 +08:00
    演示下如何掺沙子。 为了方便理解。不用英文了。中文请脑补为拼音。
    伪随机母密码:『两个黄鹂鸣翠柳』
    =>
    黄鹂鸣翠柳
    2 个黄鹂鸣翠柳
    两个黄鹂鸣:翠柳
    两个 /黄鹂 /鸣翠柳
    2 个 /黄鹂 /鸣:翠柳
    2 个 /y 鹂:鸣翠柳 (注: y 是 yellow 的意思)
    2 个 /y 鹂,鸣:gt (注: gt 是 green tree 的意思)
    2bmgt (注: two birds 鸣 green tree )
    两个黄鹂在 V2EX 鸣翠柳

    采用唐诗的意义在于,由于母密码是有语言含义的,用户可以做很多变幻,又不丧失可记忆性。
    为了避免母密码过于集中,唐诗密码本采用的是全唐诗,字数是唐诗 300 首的 140 倍。
    加上类似上面的 特殊符号断句,数字化,英文化,减字, 增字 等多种变幻手法排列组合,一个母密码可以变幻几百倍。

    从另一个角度说,一般用户用的密码强度就比密码本生成的高?很多都还不如。为什么不用复杂的随机密码呢?因为没法记。所以不实用。 密码本的目的是让有一定强度的密码能够真正用起来。还是那句话,不要求跑过狮子,跑过慢的就行。不要求密码无懈可击,比原来的强度好就行。 密码本的目的,是寻找一个『好记』和『强度』的平衡。
    Delbert
        17
    Delbert  
       2015-09-19 11:02:33 +08:00 via Android
    蓝鲸 同在蓝鲸
    Ncer
        18
    Ncer  
       2015-09-20 11:47:18 +08:00
    挺好,支持
    monk
        19
    monk  
       2015-09-20 20:35:05 +08:00
    出来五言诗,不符最少 6 字符的要求呢
    mfhh
        20
    mfhh  
    OP
       2015-09-22 16:42:24 +08:00
    @monk 2 句一起用嘛
    mfhh
        21
    mfhh  
    OP
       2015-09-22 16:43:17 +08:00
    用类似原理做了个读小说的应用 http://one.treenote.net/
    xmcdhs
        22
    xmcdhs  
       2020-01-20 17:32:50 +08:00 via Android
    挖个坟……突发奇想:五绝集句用来作为账号的唯一指纹短语怎么样?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5322 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 08:00 · PVG 16:00 · LAX 00:00 · JFK 03:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.