Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

damm

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

damm

Computing the Damm check digit

  • 1.0
  • PyPI
  • Socket score

Maintainers
1

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 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.

Furthermore, a hexadecimal Damm check digit was added. This single hexadecimal check digit that detects every 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). It also detects all jump-transposition errors (abc -> cba), 93.5 % of all twin digit errors (aa -> bb) and 93.5 % of all jump twin digit errors (aca -> bcb).

There are four functions in this module: encode, encode16, check and check16. The first two, encode and encode16 are used to calculate the check digit for a number that you have. Pass in a string with the number you want encoded and get a string with the check digit back. The other two, check and check16 are used to check that a number that was entered was entered correctly. Pass in a string with a number including check digit and get back True/False.

Damm algorithm

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

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc