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