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 hashes)