Luhn算法由IBM的Hans Peter Luhn發(fā)明,又稱為“模10”算法,是一種簡單的校驗(yàn)和算法,用來驗(yàn)證識(shí)別號(hào),比如信用卡號(hào)、IMEI號(hào)、社會(huì)保險(xiǎn)號(hào)等。它的算法簡單,并只采用最后一位數(shù)字作為校驗(yàn)位,可以有效防止偶然的輸入性錯(cuò)誤。Luhn算法只能用于簡單的校驗(yàn),不能用于加密算法,當(dāng)然,這也不是該算法的目的。Luhn算法可以檢測(cè)到以下輸入性錯(cuò)誤:所有的單位數(shù)字錯(cuò)誤,如210寫作215;能檢測(cè)到絕大多數(shù)的臨位錯(cuò)位,比如315寫作351,但是只有兩位的情況下無法檢測(cè),比如09寫作90;能夠檢測(cè)雙數(shù)字寫錯(cuò)10種的7種,比如11寫為22,但是有3種無法檢測(cè),如22和55、33和66、44和77。