基于https://xkcd.com/936的简单密码生成器/
makepass的Python项目详细描述
启发的密码生成器
用法
只需使用pip install makepass安装包,然后运行make_pass命令:
$ make_pass CorrectHorseBatteryStaple7
密码被写入stdout,从中可以通过您选择的流水线捕获机制捕获密码。
流程和约束
makepass通过组合来自Google Common English Words存储库的n唯一、随机的通用英语单词,生成一个可记忆、可读的密码。默认情况下,使用20000个英语单词的列表。单词集被限制为m和n个字符之间的单词,包括长字符,以提高可记忆性和防止常见单词。附加随机数字,以满足密码包含字母和数字的一般要求。最终密码将介于l和m个字符之间;在找到适当长度的密码之前,将在内部生成多达s个密码。
以上所有内容都可以配置;运行make_pass -h获取修改其行为的标志列表,以及显示熵信息的选项
默认值
可以更改以下所有参数:
- n=4
- m=4
- n=8
- l=24
- m=∞
- s=10000
- 随机数字is追加
- 随机特殊字符not追加
- 文字集:20K。可与10K集一起重新上漆。
- 特殊字符集:-_()/.,?!;:。应该被大多数密码过滤器接受。
这些默认参数产生的密码大约为57.561位的熵。
安全免责声明
虽然我对它的基本可靠性很有信心,makepass没有经过任何安全审查或审计,我也不是密码安全领域的专家。使用风险自负。
makepass是围绕使用random.SystemRandom而构建的,而这反过来又基于os.urandom。os.urandom被python文档描述为“适合加密使用”。有关在安全上下文中使用os.urandom和/dev/urandom的更多信息,请参阅this article。
我目前所知道的makepass中最明显的安全漏洞是它会写入您的终端,终端可能会被记录或缓存到磁盘。在创建您实际要使用的密码时,请确保将其导入安全目标;我个人偏爱osx上的say命令,它通过扬声器大声说出密码。