优点:
- 我无法记住“好”密码,所以记住它们并不是问题。
- 它们看起来不像密码。
- 它们几乎不可能被猜到(128位的熵)。
- 容易生成(解决了“好 PRNG”问题)。
缺点:
- ???
特别是针对电脑自动输入的密码,例如一些设置中的数据库登录密码,有什么需要注意的吗?
优点:
缺点:
特别是针对电脑自动输入的密码,例如一些设置中的数据库登录密码,有什么需要注意的吗?
一个主要的问题是,正如原问题所述,您不一定拥有“128位熵”。
许多GUID算法中嵌入了可预测模式的信息,例如计算机的MAC地址、日期/时间或递增序列。对WinAPI GUID的密码分析表明,在给定初始状态的情况下,可以预测由函数UuidCreate返回的接下来的250,000个GUID。
例如,我猜测第三组数字的第一个位置的第一个数字有约50%的几率是1(用于V1 GUID)或4(用于V4 GUID)。
缺点:
因此,除非它们是很少更改的系统密码,否则我怀疑它们是否是好的密码。
缺点:
几乎不可能记住一个32字节的字母数字字符串。
缺点:
缺点:
... 优点:
已经有使用大型随机密码的解决方法了。它们被称为OTP(一次性密码),比你所建议的更加安全,因为它们会随时间变化,并且通常由安全设备生成。当然,只有当您设计密码系统时才相关。
有人需要将其作为密码输入吗?还是您只想将其用作一次性的东西?因为说实话,没有人想在密码字段中输入GUID。人们已经很难输入WEP/WPA2 wifi网络密钥了。而且大多数情况下,这些都是一次性的。
@Miyagi:当然,这是最明显的缺点。他们必须把它写下来。
从技术上讲,它们是好的密码。但在现实生活中,它们是糟糕的密码。
你最终会不得不写下这些密码,使用密码管理器或其他形式来实际使用密码... 以某种方式将失败点从密码转移到另一个方面。
考虑使用口令短语。用某些字母或其他字符替换句子中的某些字母,并对数字进行处理,使用SHIFT键输入它们,将易于记忆的数字转换为定义明确的字符序列。
例如,bcs19850101bcs 可以变成 bcs!(*%)!)!bcs
head -c 16 /dev/random | openssl enc -a -e
这将生成一个像 5eqIviKu4pFTqSPnYosVKg==
这样的密码。
不算过长,又安全、随机,不必为了记住而自杀。
编辑:与UUID相比,此方法的额外好处包括在PRNG (/dev/random)中提供了更高的安全性和较短的密码,类似的缺点。
/dev/urandom
。 - Alex Beynenson/dev/urandom
确实可以提供更高质量的熵,但如果您正在生成大量熵,则有可能耗尽池并阻塞应用程序。 - Peter Hanneman我最近编写了一段代码,将校验和的前64位转换为四个英文单词的序列。这样做可以生成一个很好的校验和(比十六进制混乱的字符串容易记忆),但我不确定是否可以将其作为密码来信任。如果您要保护某些安全内容,应该使用一个强密码并记住它,不要写下来。如果不是,那么任何旧密码都可以使用。