简单灵活的密码生成库。

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

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

推荐PyPI第三方库


热门话题
java ajax请求不允许POST请求   java引用Android应用程序中其他模块的通用模块   JavaSpringBootWebFluxFlatmap是链接http调用的正确方法吗?   java如何在底部工作表中设置折叠工具栏?   任务“:compileJava”的java执行失败。“>无效的源版本:1.7   java Rabbit MQ不刷新ACK?   JavaWebSphere7:METAINF/config/ibmaxis2。无法正确加载xml Axis2全局配置文件   在Java中找出字符串是否包含数组中的值   java Liquibase通过Springboot执行postgres方法   java在Eclipse中安装Maven而不使用插件   Swing应用程序中的java SMTP错误   web应用程序InvalidKeyException:Java中使用RSA密钥的密钥格式无效   java显示JFrame作为JButton单击的结果?   java如何保留Apache Camel Exchange的属性,如果消息是从RabbitMQ生成和使用的   java使用流提取哈希映射列表中的所有对象   Android应用程序中的java单词检查器