基于https://xkcd.com/936的简单密码生成器/

makepass的Python项目详细描述


https://xkcd.com/936/

启发的密码生成器

用法

只需使用pip install makepass安装包,然后运行make_pass命令:

$ make_pass
CorrectHorseBatteryStaple7

密码被写入stdout,从中可以通过您选择的流水线捕获机制捕获密码。

流程和约束

makepass通过组合来自Google Common English Words存储库的n唯一、随机的通用英语单词,生成一个可记忆、可读的密码。默认情况下,使用20000个英语单词的列表。单词集被限制为mn个字符之间的单词,包括长字符,以提高可记忆性和防止常见单词。附加随机数字,以满足密码包含字母和数字的一般要求。最终密码将介于lm个字符之间;在找到适当长度的密码之前,将在内部生成多达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.urandomos.urandom被python文档描述为“适合加密使用”。有关在安全上下文中使用os.urandom/dev/urandom的更多信息,请参阅this article

我目前所知道的makepass中最明显的安全漏洞是它会写入您的终端,终端可能会被记录或缓存到磁盘。在创建您实际要使用的密码时,请确保将其导入安全目标;我个人偏爱osx上的say命令,它通过扬声器大声说出密码。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java区块链表示   如何识别此Java框架中使用的加密技术?   java从outter jar加载一个包含所有组件的类   java如何在netty中序列化和反序列化HttpMessage或HttpContent?   java Hibernate在一定量的插入后生成负id   文件在FTP服务器上复制,而不是在java中移动   java如何在Android应用程序中使用静态对话框片段方法?   java扫描器while循环   java如何比较drools中数组列表的泛型元素?   java构建Restful服务失败CDI部署失败   java我的播放机将子弹射出90度   在Android设备中使用WiFi direct进行java数据传输   java在命令设计模式中将上下文传递给execute方法   java KeyClope TomcatAdapter:是否有“KeyClope”的替代路径。json'?   java如何将数据库中的名称放入我在另一个类中创建的JLIst中?   java Spring Mvc和MediaType for在获取rest请求的@RequestMapping中使用   java如何在应用程序运行时从包中打开文本文件?   java以Spring形式为单个对象定义POJO id   java清除gridview中的所有选定项