银行卡合法性校验 您所在的位置:网站首页 url合法性校验 银行卡合法性校验

银行卡合法性校验

2023-03-10 04:37| 来源: 网络整理| 查看: 265

Luhn检验数字算法(Luhn Check Digit Algorithm),也叫做模数10公式,是一种简单的算法,用于验证银行卡、信用卡号码的有效性的算法。对所有大型信用卡公司发行的信用卡都起作用,这些公司包括美国Express、护照、万事达卡、Discover和用餐者俱乐部等。这种算法最初是在20世纪60年代由一组数学家制定,现在Luhn检验数字算法属于大众,任何人都可以使用它。 算法:将每个奇数加倍和使它变为单个的数字,如果必要的话通过减去9和在每个偶数上加上这些值。如果此卡要有效,那么,结果必须是10的倍数。 使用如下代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 //剔除卡号里的非法字符 -(NSString *)getDigitsOnly:(NSString*)s {     NSString *digitsOnly = @"";     char c;     for (int i = 0; i < s.length; i++)     {         c = [s characterAtIndex:i];         if (isdigit(c))         {             digitsOnly =[digitsOnly stringByAppendingFormat:@"%c",c];         }     }     return digitsOnly; } //检查银行卡是否合法 //Luhn算法 -(BOOL)isValidCardNumber:(NSString *)cardNumber {     NSString *digitsOnly = [self 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; }

再一次感谢您花费时间阅读这篇文章! 微博: @Danny_吕昌辉 博客: SuperDanny



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有