代码之家  ›  专栏  ›  技术社区  ›  FunctorSalad

非常简单的密码生成方案;这是安全的吗?

  •  3
  • FunctorSalad  · 技术社区  · 15 年前

    编辑/澄清:我指的是密码生成,如 基于某些秘密和特定于站点的数据,确定地生成供自己使用的密码(例如注册web服务)

    我使用主密码和(非机密的)特定于站点的字符串连接的MD5摘要。然后取十六进制表示法的前16位。

    这种简单方案的优点是:

    • 不必信任firefox扩展或者其他什么来为你生成密码

    (旁注:当然,使用十六进制数字是次优的每字符熵,但谁在乎密码是否更长,以弥补它?)

    #!/bin/bash
    
    master=myMasterPassword
    echo "$master$1" | md5sum | head -c16
    
    4 回复  |  直到 15 年前
        1
  •  2
  •   Nick Johnson    15 年前

    已经有一些系统使用这种方法,例如 SuperGenPass . 一般来说,假设您的哈希函数是安全的,不受前映像攻击(为此,我建议使用 其他 比MD5),你可能没事。

    然而,有一种更好的方法来实现这一目的:即 HMAC

        2
  •  1
  •   David Waters    15 年前

    你在为谁辩护? 妥协的效果如何? 你如何保护你的主密码,特别是如果它是在这个脚本中输入。

    如果你使用的机器被压缩或检查,你的所有密码都会暴露出来。通过命令行历史记录、bash脚本、内存分页到磁盘。更糟糕的是,你谈论的是可移植性,所以你会在许多机器上使用它,其中一些是不可信的。如果有人在你之后使用这台机器,并了解你正在做什么,他们不仅会得到你在这台机器上使用过的密码,而且会得到你生成的所有密码。

    这个网站的另一个限制是有密码组合规则。混合大写和小写字母,需要使用puncuation,最小数字或字母数,你的MD5为那个特定的网站没有。还有一些网站有一个最大长度的密码,我的银行网站有一个最大长度为8的密码,只用了16个可能的字符你就大大减少了可能的密码数。

    对我来说,这对于安全性较低的站点来说很好,在这些站点中,妥协的效果并不差。我不会相信这对我的银行网站访问或我的工作网站访问。我关心的事情。

    我相信我的slashdot,facebook,flickr等密码

    我使用的解决方案是 Password safe 这是由 people I trust

    人们一直在思考如何保护密码和密码安全是一个解决方案。

        3
  •  0
  •   Kimvais    15 年前

    .bash_history

    另外,请注意,MD5的16个字符只有64位的熵—例如 uuencode 可以提供更强大的16个字符的密码。

        4
  •  -2
  •   pauljwilliams    15 年前

    好吧,你的算法依赖于一个秘密,也就是你的主密码,所以为什么不把这个秘密变成‘附加了我的DOB的站点名’。同样安全,无需将算法存储在除头部以外的任何位置。只要你不把密码写在任何地方,就不可能有人猜到你的“秘密”