Luhn algorithm

[2] It is not intended to be a cryptographically secure hash function; it was designed to protect against accidental errors, not malicious attacks.

The Luhn algorithm will detect all single-digit errors, as well as almost all transpositions of adjacent digits.

The Luhn mod N algorithm is an extension that supports non-numerical strings.

Because the algorithm operates on the digits in a right-to-left manner and zero digits affect the result only if they cause shift in position, zero-padding the beginning of a string of numbers does not affect the calculation.

The algorithm appeared in a United States Patent[1] for a simple, hand-held, mechanical device for computing the checksum.

The substitution digits, that is, the results of the double and reduce procedure, were not produced mechanically.