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