IOS銀行卡合法性校驗

IOS銀行卡合法性校驗

  

查看原文:http://www.heyuan110.com/?p=1044

Luhn
檢驗數字算法(Luhn Check Digit Algorithm),也叫做模數10公式,是一種簡單的算法,用於驗證銀行卡、信用卡號碼的有效性的算法。對所有大型信用卡公司發行的信用卡都起作用,這些公司包括美國Express、護照、萬事達卡、Discover和用餐者俱樂部等。這種算法最初是在20世紀60年代由一組數學家制定,現在Luhn檢驗數字算法屬於大衆,任何人都可以使用它。

算法:將每個奇數加倍和使它變爲單個的數字,如果必要的話通過減去9和在每個偶數上加上這些值。如果此卡要有效,那麼,結果必須是10的倍數。

這裏貼出ios裏的實現代碼,其他語言的google去。

//檢查銀行卡是否合法 //Luhn算法 +(BOOL)isValidCardNumber:(NSString *)cardNumber { NSString *digitsOnly = [Tool getDigitsOnly:cardNumber]; int sum = 0; int digit = 0; int addend = 0; BOOL timesTwo = false; for (int i = digitsOnly.length - 1; i >= 0; i--) { digit = [digitsOnly characterAtIndex:i] - '0'; if (timesTwo) { addend = digit * 2; if (addend > 9) { addend -= 9; } } else { addend = digit; } sum += addend; timesTwo = !timesTwo; } int modulus = sum % 10; return modulus == 0; }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章