Open voronoipotato opened 4 months ago
Thank you for the suggestion! This was mostly an exercise to improve my F# skills, so it is still in its infancy, but I will definitely consider adding more documentation as I clean things up.
Yeah I figured even if people don't leverage it yet, it would still be good for teaching :).
Firstly this sounds pretty cool! I was thinking we could yoink some text from wikipedia with an acknowledgement. This is a bit wordy, but I think the relevant parts are, "This is a few places where you might need it" "The algorithm is public domain" "It is not designed for cryptographic security but rather to prevent accidental entry".
Thanks for your contribution to humanity, every little bit adds up.
From wikipedia
The Luhn algorithm is used in a variety of systems, including:
Credit card numbers IMEI numbers National Provider Identifier numbers in the United States Canadian social insurance numbers Israeli ID numbers South African ID numbers South African Tax reference numbers Swedish national identification numbers Swedish Corporate Identity Numbers (OrgNr) Greek Social Security Numbers (ΑΜΚΑ) ICCID of SIM cards European patent application numbers Survey codes appearing on McDonald's, Taco Bell, and Tractor Supply Co. receipts United States Postal Service package tracking numbers use a modified Luhn algorithm[4] Italian VAT numbers (Partita Iva)[5]
The Luhn algorithm or Luhn formula, also known as the "modulus 10" or "mod 10" algorithm, named after its creator, IBM scientist Hans Peter Luhn, is a simple check digit formula used to validate a variety of identification numbers. It is described in US patent 2950048A, granted on 23 August 1960.[1].
The algorithm is in the public domain and is in wide use today. It is specified in ISO/IEC 7812-1.[2] It is not intended to be a cryptographically secure hash function; it was designed to protect against accidental errors, not malicious attacks. Most credit cards and many government identification numbers use the algorithm as a simple method of distinguishing valid numbers from mistyped or otherwise incorrect numbers.