带荷兰语支持的密码强度估算器
项目描述
这是一个zxcvbn的Python端口,zxcvbn是一个JavaScript密码强度生成器。zxcvbn通过模式匹配和保守的熵计算尝试给出合理的密码建议。它可以找到10k个常用密码、常见的美国家庭和姓氏、常见英语单词以及常见的模式,如日期、重复(aaa)、序列(abcd)和QWERTY模式。
所有Python端口的辛勤工作都由Ryan Pearl完成,在他的原始python-zxcvbn包中。这个版本增加了一个荷兰语单词列表。
有关zxcbvn的完整详情和动机,请参阅http://tech.dropbox.com/?p=165。原始JavaScript(实际上是CoffeeScript)实现的源代码可以在以下位置找到
https://github.com/lowe/zxcvbn
有关完整动机,请参阅
http://tech.dropbox.com/?p=165
安装
该项目可以从PyPI作为zxcvbn-dutch获取: https://pypi.python.org/pypi/zxcvbn-dutch
您可以使用以下命令安装它: pip install zxcvbn-dutch 如果您已经安装了现有的zxcvbn Python版本,建议在安装zxcvbn-dutch之前卸载它。
使用
zxcvbn模块导出password_strength()函数。导入zxcvbn,并调用password_strength(password, user_inputs=[])。该函数将返回一个包含以下键的结果字典
熵 # 比特
crack_time # 实际破解时间的估计,以秒为单位。
- crack_time_display # 相同的破解时间,作为一个更友好的字符串
(例如“立即”,“6分钟”,“几个世纪”等)
- score # [0,1,2,3,4],如果破解时间小于
([10**2, 10**4, 10**6, 10**8, Infinity])。#(用于实现强度条。)
- match_sequence # zxcvbn基于此进行熵计算的图案列表
#。
- calculation_time # 计算答案所需的时间,
# 以毫秒为单位。通常只有几毫秒。
可选的user_inputs参数是一个字符串数组,zxcvbn会将其添加到其内部字典中。这可以是您喜欢的任何字符串列表,但主要用于表单的其他字段的用户输入,如姓名和电子邮件。这样,包含用户个人信息的密码会受到严重惩罚。此列表也适用于特定于站点的词汇。
欢迎提交错误报告和拉取请求!
致谢
感谢Dropbox再次支持hackweek内外独立项目。
感谢Dan Wheeler(https://github.com/lowe)提供的CoffeeScript实现(见上文)。重复他的外部致谢(这些致谢始终有用)
非常感谢Mark Burnett发布他的10k顶级密码列表:http://xato.net/passwords/more-top-worst-passwords 以及他的2006年书籍,《完美的密码:选择、保护、认证》
非常感谢维基词典的贡献者构建了用于电视和电影的英语频率列表:http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists
非常感谢莱比锡大学发布他们的荷兰单词列表:http://wortschatz.uni-leipzig.de/html/sitemap.html
最后但同样重要的是,对xkcd表示衷心的感谢 :) https://xkcd.com/936/
项目详情
zxcvbn-dutch-1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0e8d64d721e6e5b1c38fd1a8169a78c75f29e9b7d7e16fcaef4b3fff1bfa62c2 |
|
MD5 | 8b1016994d37e0c3a648610342118f64 |
|
BLAKE2b-256 | ab320aae486516bf1892b7df36260d81e638c2850457a8ba67f98ea195e3e16f |