Python的Luhn算法的基础无关实现。用于生成和验证校验位。
项目描述
Baluhn:基础无关Luhn
Baluhn为Python提供了一个基础无关的Luhn算法实现。它用于在任意基数中生成和验证校验位。
来自维基百科
Luhn算法或Luhn公式,也称为“模10”或“mod 10”算法,是一种简单的校验公式,用于验证各种识别号,如信用卡号、IMEI号、美国和加拿大的国家提供者识别号以及社会保险号。
安装
使用pip install baluhn
或python setup.py install
。
用法
baluhn
模块提供了两个函数:verify
和generate
。
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2d06797789faebf7b68052d101ae5000f6f328e348bd3a2103609834f9bf0b39 |
|
MD5 | 9b1cc037045b79c350e2b4fd48d6c16f |
|
BLAKE2b-256 | d8041f702c771d387b66f8232afb223db4796372a2e68095078ca76c41d1f151 |