python的luhn算法的不可知论基础实现。用于生成和验证校验位。

baluhn的Python项目详细描述


巴鲁恩:基础不可知论的鲁恩

baluhn为python提供了Luhn algorithm的独立于基的实现。它是 用于生成和验证任意基中的校验位。

来自维基百科:

The Luhn algorithm or Luhn formula, also known as the "modulus 10" or "mod 10" algorithm, is a simple checksum formula used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers in US and Canadian Social Insurance Numbers.

安装

使用pip install baluhnpython setup.py install

用法

baluhn模块提供两个功能:verifygenerate

generate计算中给定输入字符串的luhn检查字符 给定的基。此字符应附加到输入字符串 生成有效的luhn字符串。verify测试字符串是否有效 给定基中的luhn字符串。默认情况下,Baluhn以10为基数运行:

>>>frombaluhnimportgenerate,verify>>>verify('5105105105105100')# MasterCard test numberTrue>>>value='510510510510510'# note the missing check digit>>>generate(value)'0'>>>verify(value+'0')True>>>verify(value+'7')False

当以十进制以外的基数操作时,编码器和解码器可调用 应该提供。编码器应采用单个参数、整数和 返回与操作基中的整数相对应的字符。 相反,解码器应采用包含单个字符和 返回操作基中的整数值。注意 编码器和解码器定义的值和字符应为一对一。

例如,使用十六进制时:

>>>hex_alphabet='0123456789abcdef'>>>hex_encoder=lambdai:hex_alphabet[i]>>>hex_decoder=lambdas:hex_alphabet.index(s)>>>value='a8b56f'>>>generate(value,base=16,encoder=hex_encoder,decoder=hex_decoder)'b'>>>verify('a8b56fb',base=16,decoder=hex_decoder)True>>>verify('a8b56fc',base=16,decoder=hex_decoder)False

作者

baluhn由Ben Hodgson编写,由Four Digits维护。

(un)许可证

这是免费和无负担的软件发布到公共领域。

任何人都可以自由复制、修改、发布、使用、编译、销售或分发 此软件,无论是源代码形式还是编译后的二进制文件, 目的,商业的或非商业的,以任何方式。

在承认版权法的司法管辖区内,本协议的作者 软件将对该软件的所有版权利益奉献给公众 领域。我们这样做是为了广大公众的利益 对我们的继承人和继承人的损害。我们希望这次献身 永久放弃所有现在和将来的权利的公开行为 本软件受版权法保护。

本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者应对任何索赔、损害或其他责任负责,无论是在 因、由或与之相关的合同、侵权行为或其他行为 与软件或软件的使用或其他交易。

有关详细信息,请参阅http://unlicense.org/

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

推荐PyPI第三方库


热门话题
java Spinner选定值未上载到firebase数据库   java如何通过bukkit中的配置添加消息?   java在SharedReference中保存列表的泛型类型   javascript Java小程序未定义   swt在Java中构建控制台应用程序   java OAuth同意屏幕没有突然显示,没有错误?   java webview选择文件安卓不工作   java Spring boot JPA如何从同一连接添加多个数据库?   java JDBC DB2驱动程序计时器线程处于阻塞状态   java我在vscode中运行flatter时看到一个错误在phone中运行应用程序somone能否帮助我plz   Java:生成JSON:如何避免生成不完整的JSON   java Date compareTo()方法始终返回1   当使用Junit runner运行测试时,java Spring自动连线失败   java Android/Sockets如何将信息从主UI线程发送到socket线程?   java Android内存声明全局变量   java如何在JBoss中拥有多个具有相同JNDI名称的数据源?   python在Java中嵌入CPython时,为什么会挂起?   java如何提供深度模拟对象?   java“find:smallint,expected:integer”Hibernate对informix数据库的验证在短时间内失败