Alternately, you can use the same checksum creation algorithm, ignoring the checksum already in place as if it had not yet been calculated. Then calculate the checksum and compare this calculated checksum to the original checksum included with the credit card number. If the included checksum matches the calculated checksum, then the number is valid.
sas
==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 ''22'' ↔ ''55'', ''33'' ↔ ''66'' or ''44'' ↔ ''77'').
Other, more complex check-digit algorithms (such as the [[Verhoeff algorithm]] and the [[Damm 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 makes it possible 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<ref>[http://www.google.com/patents/US2950048 US Patent 2,950,048 - ''Computer for Verifying Numbers'', Hans P Luhn, August 23, 1960]</ref> 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.
==See also==
|