生成骰子软件单词表。

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> ::
$wlflakes mywordlist.txt

无输出表示:未检测到问题。

目前,只检查前缀片。也就是说,我们检查是否有线路 给定的文件是任何其他行的开头。

< 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-list
0

此命令将下载所有必需的包,特别是 py.test

您还可以使用pip手动安装py.test。

(venv) $ pip install diceware-list
1

然后运行这样的测试:

(venv) $ pip install diceware-list
2

如果您还安装了tox

(venv) $ pip install diceware-list
3

然后您可以同时运行所有受支持平台的所有测试:

(venv) $ pip install diceware-list
4

覆盖范围

要获得覆盖率报告,可以使用相应的 tox 目标:

(venv) $ pip install diceware-list
5

或者使用通用的覆盖范围工具:

(venv) $ pip install diceware-list
6 < 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五次 六面骰子或一个六面骰子掷五次。

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

推荐PyPI第三方库


热门话题
反射Java反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?