跳转到主要内容

32位Damm算法的纯Python实现。

项目描述

Damm32

Tests

32位Damm算法的Python实现

默认情况下,它使用RFC 4648中指定的字母表,包含32个字母数字字符,去除了相似外观的字符。填充符号不包括在内。

安装

该软件包可在PyPI上找到,并可以使用pip进行安装: pip install damm32

它还可在Arch用户仓库中找到,名称为python-damm32

或者,您也可以克隆仓库并使用该模块。

用法

该模块包含一个名为Damm32的类,该类实现了校验和的方法。

from damm32 import Damm32

d32 = Damm32()

digit = d32.calculate("HELLO")

d32.verify("HELLO" + digit)

您还可以将长度为32的列表传递给类的构造函数,以指定您的字母表。

from damm32 import Damm32

d32 = Damm32(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '2', '3', '4', '5', '6', '7'])

工作原理

这是Damm算法在32位系统中的实现。

它将检测两种最常见的转录错误的所有发生情况,即更改一个单独的数字和交换两个相邻的数字(包括交换尾随校验数字和前一个数字)。

由于添加前导零不会影响校验数字,因此不应该一起验证可变长度的代码,例如,0、01和001等产生相同的校验数字。然而,所有校验和算法都容易受到这种攻击。

实现使用来自低权重不可约二元多项式表的位掩码,以启用不构造拟群计算校验数字。

项目详情


下载文件

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

源分布

damm32-1.2.1.tar.gz (4.4 kB 查看哈希值)

上传时间

构建分布

damm32-1.2.1-py3-none-any.whl (4.7 kB 查看哈希值)

上传时间 Python 3

由以下机构支持