编辑/说明:我的意思是密码生成,如“根据一些 secret 和某些特定于站点的数据确定性地生成供您自己使用(例如,注册Web服务)的密码”
我将主密码和(非 secret )特定于站点的字符串串联起来的MD5摘要。然后,我以十六进制表示形式的前16位数字表示。
这种简化方案的优点是:
这是否有任何隐藏的漏洞?显然,如果主人受到威胁,我很不幸。
(旁注:当然,使用十六进制数字表示每个字符的熵次优,但是谁会在乎是否需要更长的密码来弥补它呢?)
#!/ bin / bash
master = myMasterPassword
回声“$ master $ 1” | md5sum |头-c16
最佳答案
已经有使用此功能的系统,例如SuperGenPass。通常,假设您的哈希函数可以抵抗原镜像攻击(为此,我建议您使用MD5之外的其他工具),那么您可能还可以。
但是,为此有一个更好的构造:HMAC。它是由常规哈希函数构造而成的,但具有证明其可以抵抗各种攻击(甚至有限的原像攻击)的安全性的证据。 RFC中还有一个部分明确涉及使用截断的HMAC。
关于security - 非常简单的密码生成方案;这样安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2100632/