Content deleted Content added
→Example for computing check digit: cleaning up 20 October 2020 vandalism by 112.206.35.179 |
No edit summary |
||
(16 intermediate revisions by 15 users not shown) | |||
Line 1:
{{Short description|Simple checksum formula}}
{{redirects|Luhn|people named Luhn|Luhn (surname)}}
The '''Luhn algorithm''' or '''Luhn formula''' (creator: [[IBM]] scientist [[Hans Peter Luhn]]), also known as the "[[modular arithmetic|modulus]] 10" or "mod 10" [[algorithm
The algorithm is in the [[public ___domain]] and is in wide use today. It is specified in [[ISO/IEC 7812-1]].<ref>{{cite tech report|title=Identification cards {{mdash}} Identification of issuers {{mdash}} Part 1: Numbering system|number=[[ISO/IEC 7812]]-1:{{date|2017|DMY}}|institution=[[International Organization for Standardization]] & [[International Electrotechnical Commission]]|date={{date|Jan 2017|DMY}}|type=standard|url=https://www.iso.org/standard/70484.html|chapter=Annex B: Luhn formula for computing modulus-10 “double-add-double” check digits}}</ref> It is not intended to be a [[cryptographic hash function|cryptographically secure hash function]]; it was designed to protect against accidental errors, not malicious attacks. Most [[credit card number]]s and many [[government identification numbers]] use the algorithm as a simple method of distinguishing valid numbers from mistyped or otherwise incorrect numbers.
Line 16:
Assume an example of an account number 1789372997 (just the "payload", check digit not yet included):
{| class="wikitable" style="text-align:center;border:none
| style="width:1.5em" | 7
| style="width:1.5em" | 9
Line 54:
|-
!
| style="background: #FFA; color: #000;" | '''14'''
| 9
| style="background: #FFA; color: #000;" | '''18'''
| 2
| style="background: #FFA; color: #000;" | '''14'''
| 3
| style="background: #FFA; color: #000;" | '''18'''
| 8
| style="background: #FFA; color: #000;" | '''14'''
| 1
|-
Line 107:
parity := length mod 2
'''for''' i from 1 to (length - 1) '''do'''
'''if''' i mod 2
sum := sum + cardNumber[i]
'''elseif''' cardNumber[i] > 4 '''then'''
Line 128:
* [[South Africa|South African]] ID numbers
* [[South Africa|South African]] Tax reference numbers
* [[Personal identity number (Sweden)| Swedish
* [[Sweden|Swedish]] Corporate Identity Numbers (OrgNr)
* [[Greece|Greek]] Social Security Numbers (ΑΜΚΑ)
Line 139:
==References==
<references/>
==Notes==
{{notelist}}
==External links==
Line 149 ⟶ 152:
[[Category:1954 introductions]]
[[Category:Articles with example pseudocode]]
|