基于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第三方库


热门话题
mysql java。util。仅ymd的日期获取毫秒数   java游标。getColumnIndexOrThrow()引发NullPointerException   将project从java 8.11移至8.21及更高版本后,javafx字体呈现出现问题   java如何在某些条件有效时更改tableView行颜色(javaFX)   java在具有多个允许签名的Android服务上实现signaturelevel安全性   java与JTATransactionManager一起处理事务?   整数乘法的java递归定义   java如何将cwaccamera预览设置为使用scaleType centerCrop?   java如何在安卓 gradle中将库模块从proguard中免除   进程中的java循环冲突优化   模型视图控制器Java MVC计算器   java无法在VSCode中运行“karatedemo”运行程序,因为无法解析karatecore类   java将jsp页面内容读取到其他jsp页面中的html   java使JFileChooser。showSaveDialog看起来更像showOpenDialog   继承Java接口契约问题   java从ArrayList中删除随机项   java Selenium与Jbehave和Chromedriver挂起或崩溃   java需要帮助理解特定getter如何影响我的程序   验证如何在Java中整合有效性检查和异常抛出?