生成骰子软件单词表。
diceware_list的Python项目详细描述
Diceware列表
创建并检查单词表,以便与diceware一起使用。
这不是diceware实现,而是创建适当的 字表。
目前,我们提供三个脚本:
< Buff行情>骰子软件列表
基于输入列表创建单词列表wlflakes
检查现有单词表是否有缺陷wldownload
下载android单词列表
安装
从pypi安装最新版本
(venv) $ pip install diceware-list
或者从github克隆存储库:
$ git clone https://github.com/ulif/diceware-list.git
请考虑使用virtualenv进行部署。
在活动的virtualenv中,您可以安装
骰子软件列表
运行:
(venv) $ python setup.py install (venv) $ diceware-list --help usage: diceware-list [-h] [-l LENGTH] [-n] [--ascii] [-d SIDES] [-k] [--use-416] [-p {none,short,long}] [-v] [--version] DICTFILE [DICTFILE ...]
创建单词列表:
diceware list
diceware list
脚本从给定列表中创建新列表:
$ diceware-list -n -l 7776 /usr/share/dict/words 11111 a 11112 a's ... 12353 capt 12354 cara 12355 carl ... 66663 zoos 66664 éclat 66665 élan 66666 épée
骰子软件列表的主要目标是提供"好的" 单词列表。如果单词表被认为是"好的"
- 包含足够的术语以用于特定的Diceware应用程序 (例如6^6=7776,如果与六个六面骰子一起使用)
- 尽可能短地包含术语(以减少键入)
- (可选)不包含带有非ascii字符的单词(以启用 使用非本地化键盘)
- (可选)是前缀代码,即列表中没有完整的单词是 列表中另一个单词的前缀。
- 不包含任何冒犯性条款
最后一个主题在技术上很难解决(欢迎使用提示!)但是
骰子软件列表
有助于遵循其他设计规则。
由
diceware list
生成的单词表不应保留
秘密。你可以把它们放到网上,在facebook上发布,或者
刊登在纽约时报上。取而代之的是
Diceware
技术依赖于熵或(在本例中)
骰子、电脑等的"随机性"
换句话说:你的密码因为隐藏而不安全 你的单词表。他们会很安全的,因为有很多可能 您可以从单词列表中选择的单词组合。那意味着: 长的列表比短的列表更安全(如果真的习惯于满的话 根据您的随机性来源的程度,使用 Diceware ,但隐藏 列表比公共列表更安全。
用法
首先,你需要一个包含单词作为"字典"的文件。论典型的debian 这些文件可以在 /usr/share/dicts/ 中找到。
然后可以将此文件馈送到diceware list以创建单词列表 适合与Diceware一起使用。
$ diceware-list /usr/share/dict/words ! !! !!! ... alan alana alar ... zzz zzzz
默认情况下,所有输入字都被过滤并输出。使用
-l
选项
可以请求一定长度的输出字列表。如果输入列表提供
超出需要的术语,我们将选择一个子集。如果没有足够的条件
输入列表中出现错误。
使用
-n
您可以告诉
Diceware list
将数字放入每一行,
表象掷骰子
$ diceware_list -n -l 7776 /usr/share/dict/words 11111 ! 11112 !! ... 12353 alan 12354 alana 12355 alar ... 66665 zzz 66666 zzzz
如果创建用于非标准骰子的单词列表,例如
10面骰子,然后您可以用
-d
这样判断:
$ diceware_list -n -d 10 -l 10000 /usr/share/dict/words 1-1-1-1 aol 1-1-1-2 aachen 1-1-1-3 aaron ... 10-10-10-8 zoomed 10-10-10-9 zooms 10-10-10-10 zoos
--ascii
选项过滤掉包含非ascii的术语
字符。这有助于生成非英语单词列表
可与普通英语键盘配合使用。
可以多次给verbose选项
--verbose
增加
冗长。
有关其他选项,请参见"帮助"。
diceware list
大致遵循
Reinhold先生的http://diceware.com/" rel="nofollow">http://diceware.com/。
检查字表:wlflakes
在单词列表中查找薄片。
< DL>无输出表示:未检测到问题。
目前,只检查前缀片。也就是说,我们检查是否有线路 给定的文件是任何其他行的开头。
< DL>$cat wordlist.txt 空气 港口 机场
$wlflakes wordlist.txt文件 txt:3:e1第1行的"air"是"airport"的前缀
此外,wlflakes还支持 --help 或 -h 以列出所有支持的选项。
处理android单词列表:wldownload
android单词列表是一个很好的单词列表源。它们可以从 公共存储库:
$ wldownload --raw -v Starting download of Android wordlist file. Fetching wordlist from https://android.googlesource.com/platform/pack... Done.
wldownload
下载这些列表并帮助将它们转换为列表
可用于骰子。请注意,列表中的术语由stdout输出
默认值(android单词列表包含的术语很容易超过100000):
$ wldownload > mylist $ cat mylist the to ... yt yuk
默认情况下,术语在stdout上输出(使用shell重定向或 --outfile 改变这种行为)。
您可以使用 语言代码,如 cs 或 de 。使用 --语言代码列出所有支持的 语言代码。
--无攻击性标志可抑制标记为可能攻击性的术语。
测试
在源代码的克隆中,您可以运行如下测试:
(venv) $ pip install diceware-list0
此命令将下载所有必需的包,特别是 py.test
您还可以使用pip手动安装py.test。
(venv) $ pip install diceware-list1
然后运行这样的测试:
(venv) $ pip install diceware-list2
如果您还安装了tox
(venv) $ pip install diceware-list3
然后您可以同时运行所有受支持平台的所有测试:
(venv) $ pip install diceware-list4
覆盖范围
要获得覆盖率报告,可以使用相应的
tox
目标:
(venv) $ pip install diceware-list5
或者使用通用的覆盖范围工具:
(venv) $ pip install diceware-list6 < COL/> < COL/> <正文> <表>
更改
2.0(2018-01-23)
-
添加新的
wldownload
命令。这是一个处理android单词表的工具 (下载、解压缩、解析)。 -
添加新的
wlflakes
命令。这是一个检查现有 用于一致性的单词列表、加密片等。 diceware list
选项-l
不再包含默认值。如果选择 未设置,则输出所有合适的术语。
1.0(2017-02-09)
-
生成的列表中不包括
dicewarekit.txt
列表
从现在开始违约。您可以请求包含新选项
使用工具包
。不再支持旧选项"无工具包"。 - 在数字输出中,用 - 分隔数字以区分数字 有一个以上的数字。至少在生成单词列表时需要 用于9面以上的骰子。
-
将
-s
选项重命名为-d
(如 骰子边 )。 -
日志输出现在注册在name
libwordlist
- 添加了新模块libwordlist,其中包含diceware list的api部分。
-
新的
--版本
选项。 - 新的前缀选项。如果生成set prefix code,即列出 不包含另一个列表项的前缀项。
- 声明支持Python 3.6。
- 重组包:所有单个脚本现在都是包的一部分。
0.3(2016-07-25)
- 将脚本安装为Diceware List而不是Diceware List
-
允许
--sides
选项支持没有六个边的骰子。
0.2(2016-03-18)
-
允许多次选择
-v
选项以增加详细程度。 - 随机选取最大宽度项。在那之前我们把所有的 较短的条目以及(按字母顺序)第一个条目 最大宽度。现在,我们随机选取一组最大宽度 结果列表的条目。
- 声明支持Python 3.5。
0.1(2016-02-09)
- 初始版本。
[1] | 在这种情况下,单词列表长度应该是 (每个骰子的边数) 通电至 (掷骰子的次数) ,例如6**5=7776五次 六面骰子或一个六面骰子掷五次。 |