Computing the Damm check digit
Project description
Damm algorithm decimal check digit
Note that check digits are NOT used for verification of data transfers between
computers -- use a CRC or a hash for that purpose! Check digits are used to
check *manual* entry of a digit into a computer system.
A Damm check digit is a single decimal check digit that can detect any
single-digit error as well as any adjacent-digit transpositions. The digit
computed in this module also detects some important phonetic errors (13<->30,
14<->40, ... 19<-->90).
This makes the Damm check digit better than other, more well-known check digits
like the Luhn code (used in credit cards) and the ISBN base-11 check digit. It
is equal in detection strength to a Verhoeff check digit, but much simpler to
compute.
There are two functions in this module: `encode` and `check`. The first,
`encode` is used to calculate the check digit for a number that you have. The
second, `check` is used to check that a number that was entered was entered
correctly.
The Damm check digit is computed by starting with a check digit of zero and then
continually multiplying this check digit with the digits of a given number,
using the multiplication of a totally anti-symmetric quasigroup. The properties
and the selection of the group ensure the qualities of the check digit stated
above.
For further reference on how the algorithm works see
http://en.wikipedia.org/wiki/Damm_algorithm
License information
-------------------
Copyright (C) 2013 Johannes Spielmann
This module, `damm`, is licensed under the terms of the GNU General Public Licenses as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
For a full description of the license, please see the file
LICENSE
Note that check digits are NOT used for verification of data transfers between
computers -- use a CRC or a hash for that purpose! Check digits are used to
check *manual* entry of a digit into a computer system.
A Damm check digit is a single decimal check digit that can detect any
single-digit error as well as any adjacent-digit transpositions. The digit
computed in this module also detects some important phonetic errors (13<->30,
14<->40, ... 19<-->90).
This makes the Damm check digit better than other, more well-known check digits
like the Luhn code (used in credit cards) and the ISBN base-11 check digit. It
is equal in detection strength to a Verhoeff check digit, but much simpler to
compute.
There are two functions in this module: `encode` and `check`. The first,
`encode` is used to calculate the check digit for a number that you have. The
second, `check` is used to check that a number that was entered was entered
correctly.
The Damm check digit is computed by starting with a check digit of zero and then
continually multiplying this check digit with the digits of a given number,
using the multiplication of a totally anti-symmetric quasigroup. The properties
and the selection of the group ensure the qualities of the check digit stated
above.
For further reference on how the algorithm works see
http://en.wikipedia.org/wiki/Damm_algorithm
License information
-------------------
Copyright (C) 2013 Johannes Spielmann
This module, `damm`, is licensed under the terms of the GNU General Public Licenses as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
For a full description of the license, please see the file
LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
damm-0.1.tar.gz
(2.8 kB
view details)
File details
Details for the file damm-0.1.tar.gz.
File metadata
- Download URL: damm-0.1.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e30d78a6eba8e1c734df03ef1873263d7fec5f4faee03499ab1f361d0418dfef
|
|
| MD5 |
e97e8428889b5f4b0746dd0c2c1ad300
|
|
| BLAKE2b-256 |
23a6632ec0fbb081d7df43a42a4da97d15b471ce754a381b200da5e8b49e7b3a
|