简单灵活的密码生成库。
grampg的Python项目详细描述
版权所有2012 Elvio Toccalino。
关于
grampg(提示grumpy admin password generator,并发音为“grummpeege”)是一个小的python库,它允许根据(可能很复杂的)user specs生成密码。这个想法很简单:构建一个实例,为它提供所需的规范,然后生成任意多的密码。生成的每个密码都将独立于其他密码,除非所有密码都符合规范。
<^ > TT1}$$的目标是灵活性和易用性。grampg通过向用户提供一个kind接口来实现:当构建密码生成器时,用户编写规范时,就好像它是被读出来的一样。以这种方式,一组复杂的规则用声明行表示。用法
典型的用法遵循前面概述的模式:构建一个生成器实例,为它提供您的规范,收集您的密码。这个简短的解释无法解释how,这是grampg的主要吸引力。例如,请考虑以下内容:
Your admin needs your system to produce passwords of between 5 and 10 letters, at least 4 numbers, adding up to 10 characters total. Oh, and since this passwords may be used in some-mail-system, they should start with a letter.
约束或specs是精心设计的,但是它们可以被输入到grampgsimply:
from grampg import PasswordGenerator passwords = (PasswordGenerator().of().between(5, 10, 'letters') .at_least(4, 'numbers') .length(10) .beginning_with('letters') .done()) return [passwords.generate() for i in xrange(so_many_passwords)]
只创建一个生成器实例,然后用于生成所需的密码。
默认情况下,其他可用的字符集有“小写字母”、“大写字母”和“字母数字”,但用户可以使用所需的任何字符集(以及重写默认值)自由构建生成器实例。例如:
passwords = (PasswordGenerator({'special': list('%$#!*'), 'letters': list('abcde')}) .of().exactly(3, special).at_most(2, 'special').done())
有关更多示例,请执行并读取many_passwords.py程序(位于grampg/demo中),该程序是一个简单的程序,根据一些实际的规范发送密码。还有一个usecases.py文件,它包含了grampg及其预期输出(有效和无效)的许多用途。
测试
grampg包包含以下用作测试台的文件:
- tests.py
- 单元测试套件。
- usecases.py
- 集成测试。
- regression.py
- 回归测试。像集成,但实际的例子出了差错,现在已经修复。
关于名称
我知道这个名字很烂。这对激励代码创建的人来说是一个愚蠢的笑话。
许可证
grampg软件包(包括测试、文档和演示程序)在GNU Affero GPL 3.0版下获得许可。许可证的副本包含在grampg包中。有关许可证的详细信息,请访问http://www.gnu.org/licenses/agpl.html。