类 BankCheckUtils

java.lang.Object
dev.utils.common.validator.BankCheckUtils

public final class BankCheckUtils extends Object
detail: 银行卡管理工具类
作者:
AbrahamCaiJin, Ttt
     当你输入信用卡号码的时候, 有没有担心输错了而造成损失呢, 其实可以不必这么担心
     因为并不是一个随便的信用卡号码都是合法的, 它必须通过 Luhn 算法来验证通过
     

该校验的过程: 1、从卡号最后一位数字开始, 逆向将奇数位 (1、3、5 等等 ) 相加 2、从卡号最后一位数字开始, 逆向将偶数位数字, 先乘以 2 ( 如果乘积为两位数, 则将其减去 9), 再求和 3、将奇数位总和加上偶数位总和, 结果应该可以被 10 整除

例如, 卡号是: 5432123456788881 则奇数、偶数位 ( 用红色标出 ) 分布: 5432123456788881 奇数位和 = 35 偶数位乘以 2 ( 有些要减去 9) 的结果: 1 6 2 6 1 5 7 7, 求和 = 35 最后 35 + 35 = 70 可以被 10 整除, 认定校验通过
  • 方法详细资料

    • checkBankCard

      public static boolean checkBankCard(String cardId)
      校验银行卡卡号是否合法
      参数:
      cardId - 待校验银行卡号
      返回:
      true yes, false no
    • getBankCardCheckCode

      public static char getBankCardCheckCode(String nonCheckCodeCardId)
      从不含校验位的银行卡卡号采用 Luhn 校验算法获取校验位
      参数:
      nonCheckCodeCardId - 待校验银行卡号
      返回:
      银行卡校验位
    • getNameOfBank

      public static String getNameOfBank(String cardBin)
      通过银行卡的 前六位确定 判断银行开户行及卡种
      参数:
      cardBin - 待校验银行卡号
      返回:
      银行开户行及卡种