跳转到主要内容

Python的Luhn算法的基础无关实现。用于生成和验证校验位。

项目描述

Baluhn:基础无关Luhn

Baluhn为Python提供了一个基础无关的Luhn算法实现。它用于在任意基数中生成和验证校验位。

来自维基百科

Luhn算法或Luhn公式,也称为“模10”或“mod 10”算法,是一种简单的校验公式,用于验证各种识别号,如信用卡号、IMEI号、美国和加拿大的国家提供者识别号以及社会保险号。

安装

使用pip install baluhnpython setup.py install

用法

baluhn模块提供了两个函数:verifygenerate

generate 在给定基中计算给定输入字符串的Luhn校验字符。该字符应附加到输入字符串以生成有效的Luhn字符串。verify 测试字符串是否为给定基中的有效Luhn字符串。默认情况下,Baluhn以10进制运行。

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

当在非十进制基中运行时,应提供编码器和解码器可调用对象。编码器应接受一个参数,即一个整数,并返回对应于该整数的操作基中的字符。相反,解码器应接受一个包含单个字符的字符串,并返回该字符在操作基中的整数值。请注意,编码器和解码器定义的值与字符之间的映射应是一对一。

例如,当在十六进制中工作时

>>> hex_alphabet = '0123456789abcdef'
>>> hex_encoder = lambda i: hex_alphabet[i]
>>> hex_decoder = lambda s: 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维护。

(非)许可证

这是一个免费且无负担的软件,已发布到公共领域。

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

在承认版权法的司法管辖区,软件的作者或作者将此软件的所有版权利益奉献给公共领域。我们做出此奉献是为了公共利益,损害我们的继承人后继者的利益。我们意图此奉献是一项永久放弃所有现有和未来版权法下对此软件的权利的明确行为。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者都不应对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,源于、源于或与软件的使用或其他交易有关。

有关更多信息,请参阅http://unlicense.org/

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

baluhn-0.1.2.tar.gz (3.8 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面