Luhn Algorithm - Strengths and Weaknesses

Strengths and Weaknesses

The Luhn algorithm will detect any single-digit error, as well as almost all transpositions of adjacent digits. It will not, however, detect transposition of the two-digit sequence 09 to 90 (or vice versa). It will detect 7 of the 10 possible twin errors (it will not detect 2255, 3366 or 4477).

Other, more complex check-digit algorithms (such as the Verhoeff algorithm) can detect more transcription errors. 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. Therefore, systems that pad to a specific number of digits (by converting 1234 to 0001234 for instance) can perform Luhn validation before or after the padding and achieve the same result.

Prepending a 0 to odd-length numbers enables you to process the number from left to right rather than right to left, doubling the odd-place digits.

The algorithm appeared in a US Patent for a hand-held, mechanical device for computing the checksum. It was therefore required to be rather simple. The device took the mod 10 sum by mechanical means. The substitution digits, that is, the results of the double and reduce procedure, were not produced mechanically. Rather, the digits were marked in their permuted order on the body of the machine.

Read more about this topic:  Luhn Algorithm

Famous quotes containing the words strengths and/or weaknesses:

    My strengths make me contemptuous. My weaknesses make me charitable.
    Mason Cooley (b. 1927)

    Men are much more unwilling to have their weaknesses and their imperfections known, than their crimes; and, if you hint to a man that you think him silly, ignorant or even ill-bred or awkward, he will hate you more and longer than it you tell him plainly that you think him a rogue.
    Philip Dormer Stanhope, 4th Earl Chesterfield (1694–1773)