Skip to main content

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

Project details


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)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page