命令行工具可以生成容易记住的密码吗?

命令行工具可以生成容易记住的密码吗?

我正在寻找一个适用于 Linux 的可以生成易记密码的工具、命令行或 GUI。

我正在寻找的等价物是 Mac OS X 钥匙串可以生成的密码,类似于apples12$/fourteen。一些强大但用户容易记住的东西。

答案1

从那时起,我就转向XCKD 样式密码这是我的大部分密码。以下是命令行生成密码:

shuf -n4 /usr/share/dict/words | tr -d '\n'

答案2

我建议大家停止使用 pwgen - 它的主要目的是生成“人类可记忆的密码”,但它在执行此操作时显示出多个漏洞。而且使用它来生成完全随机的字符串也没什么用。

我写了一个详细文章关于这个话题,但基本上,它的要点是使用骰子件程序(或者,如果你喜欢骰子,实际的骰子软件系统) 或者密码为了生成容易记住的强密码,我通常使用带有以下配置文件的 diceware:

[diceware]
caps = off
delimiter = "-"
wordlist = en_eff

例子:

$ diceware
turkey-eligibly-underwire-recite-lifter-wasp
$ diceware
lend-rubdown-cornflake-tint-shawl-ozone
$ diceware
syndrome-ramp-cresting-resolved-flinch-veneering
$ diceware
alto-badass-eclipse-surplus-rudder-quit

我关闭了大写字母和空格,因为它们会产生明显的可听见的噪音,攻击者可以利用这些噪音。-分隔符是两害相权取其轻:最好不要使用任何分隔符,而en_eff单词表就是为此目的而专门制作的。但我发现,当它们有分隔符时,交流和共享密码会更容易一些分隔器。

为了生成完全随机的密码,我使用以下 shell 函数:

# secure password generator or, as dkg puts it:
# high-entropy compact printable/transferable string generator
# a password generator would be pwqgen or diceware
pwg() {
    ENTROPY=${1:-20} # in bytes
    # strip possible newlines if output is wrapped and trailing = signs as they add nothing to the password's entropy
    head -c $ENTROPY /dev/random | base64 | tr -d '\n='
    echo
}

我提到这一点是因为我认为记住较少的密码,而是依靠密码管理器来存储难以猜测的长字符串。有关这些选择背后的理由的更多详细信息,请参阅上述文章和我密码管理器评论

答案3

2020:我在 2011 年发布了这个答案。在过去的几年里,网络安全的面貌和对它的需求发生了迅速而巨大的变化。正如 anarcat 所指出的那样,pwgen 可能不(或不再)适合保护高安全性系统。他着手描述 pwgen 在某些情况下如何从可用的熵中使用不安全的密码派生方法的技术细节他的文章。虽然我不再相信生成密码然后自己尝试记住它们,但我没有技术能力来验证,更不用说保证所引用文章的内容,所以请阅读并得出自己的结论。话虽如此,我相信 pwgen 足以满足低安全性系统的需求,因为攻击的可能性很小。

您可能想查看该pwgen应用程序。我知道它可以在 Ubuntu、Fedora、Debian 和 Suse 存储库中使用。

来自手册页

pwgen 程序生成的密码设计为易于人类记忆,同时尽可能安全。人类可记忆的密码永远不会像完全随机的密码那样安全。特别是,不带 -s 选项的 pwgen 生成的密码不应在可能通过离线暴力攻击破解密码的地方使用。另一方面,完全随机生成的密码倾向于被写下来,并且容易以这种方式被破解。

pwgen 程序设计为既可用于交互,也可用于 shell 脚本。因此,其默认行为会根据标准输出是 tty 设备还是另一个程序的管道而有所不同。交互使用时,pwgen 将显示一屏密码,允许用户选择一个密码,然后快速清除屏幕。这可以防止有人“偷看”用户选择的密码。

答案4

在我问这个问题之后,一个不错的选择出现了Redacted 的 XKCD 密码生成器

这是一个不错的 Python 脚本,用于生成 XKCD 风格的密码,并具有一些高级选项,例如首字母缩略词支持。

相关内容