最近在弄支付,遇到银行卡号的校验规则,根据网上的luhm规则自己写了一个。
public class TestBankCode { public static void main(String[] args) { String bankCode = "4381260012501251"; System.out.println(validateluhm(bankCode)); } /** * luhm校验 * 从卡号最后一位数字开始,逆向将奇数位相加 * 从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和 * 奇偶相加为10的倍数表示通过 */ public static boolean validateluhm(String bankCode){ //验证 if(!bankCode.matches("^\\d{16,19}$")){ throw new IllegalArgumentException("bankCode must be 16-19 number,bankCode is : "+bankCode); } //倒转 String reverseCode = new StringBuffer(bankCode).reverse().toString(); char[] array = reverseCode.toCharArray(); int sumOdd = 0; int sumEven = 0; for(int i = 0;i<reverseCode.length();i++){ int num = Integer.parseInt(String.valueOf(array[i])); if(i % 2 == 0){ //奇数位 sumEven += num; }else{ //偶数位 num = num * 2; if(num > 9){ num = num - 9; } sumOdd += num; } } if((sumOdd + sumEven) % 10 == 0){ return true; } return false; } }
相关推荐
银行卡号校验是金融系统中常见的一项功能,它能够确保用户输入的卡号是符合标准格式并且在一定程度上能识别出错误输入或伪造卡号。本篇内容主要介绍了如何使用Luhn算法来进行银行卡号的校验。Luhn算法是由IBM科学家...
综上所述,实现“输入银行卡号判断银行”这一功能涉及到对银行卡号结构的理解、数据查询、校验机制、安全措施以及用户体验优化等多个方面的IT知识。在实际应用中,这些技术细节都需要仔细考虑和实施,以确保服务的...
这段代码首先将银行卡号分解为前15或18位和最后一位校验位,然后分别处理奇数位和偶数位,对于奇数位,如果是偶数则直接相加,如果是大于9的数则分解为个位和十位相加,最后将所有处理过的数字相加,计算总和,并...
7. **数据处理**:处理银行卡号信息时,可能需要对输入进行校验,例如检查卡号长度、格式和合法性。此外,可能会使用哈希或映射数据结构来优化BIN查询性能。 8. **异常处理**:在处理银行卡号识别时,应考虑处理找...
在IT行业中,根据银行卡号判断银行名称是一项常见的需求,尤其在金融系统开发或者数据分析中。这个任务涉及到数据处理、数据库查询以及可能的正则表达式应用。在这个场景下,我们主要探讨如何使用Java来实现这一功能...
1. **银行卡号码有效性验证**:通过对接支付宝接口,该库可以检查输入的银行卡号是否符合发行银行的格式规则,从而判断其是否真实有效。这一步通常涉及到Luhn算法的运用,这是一种简单的校验和算法,用于检测数字...
这些接口通常能通过银行卡号前几位(通常是6位)判断出发卡银行,并返回银行名称、银行卡类型等信息。这个过程需要处理好API调用的安全性和效率,确保用户输入后能快速准确地得到反馈。 其次,为了实现输入时的自动...
2. **Luhn算法**:为了确保银行卡号的准确性,开发者通常会使用Luhn算法(也称为模10校验算法)来验证输入的银行卡号是否有效。这个算法基于一个简单的数学公式,可以检查数字序列是否有误。 3. **银行卡识别库**:...
标题中的“卡号校验(C语言实现)”指的是利用C语言编程技术来验证银行卡号或信用卡号等卡号的正确性。这种校验通常涉及到一种算法,用于确认输入的卡号是否符合特定的校验规则,比如Luhn算法,也称为模10算法,是广泛...
在Java编程中,实现获取银行卡所属银行以及验证银行卡号是否正确的方法涉及到多个步骤和技术。首先,我们需要理解银行的卡号规则,通常是根据Luhn算法(也称为模10算法)来验证卡号的合法性。此外,为了获取银行卡的...
在Android应用开发中,经常会遇到需要处理用户输入的敏感信息,如银行卡号、手机号和身份证号。为了提高用户体验和数据安全性,开发者会编写特定的工具类来格式化这些输入,确保其正确性和合规性。"Android-...
在这个代码片段中,我们遍历了银行卡号的每一位,根据`isSecondDigit`标志判断是否处于偶数位置。如果是,我们按照Luhn算法的要求翻倍并调整总和。最后,检查总和是否能被10整除,从而确定银行卡号的合法性。 在...
bankList.php请在文章末尾下载 ...charset=utf-8'); ... function bankInfo($card,$bankList) { $card_8 = substr($card, 0, 8);... if (isset($bankList[$card_8])) { echo $bankList[$card_8];... if (isset($bank
在这个`checkLuhn`函数中,我们遍历输入的银行卡号字符串,判断每个字符是否为数字,然后根据`isDouble`标志来决定是否翻倍以及如何处理翻倍后的结果。最后,如果总和对10取模为0,说明校验成功。 在实际的项目中,...
此外,对于银行卡号的输入,通常还需要考虑校验位的计算,如Luhn算法,这通常在用户完成输入后进行,确保输入的号码是有效的。这部分功能不在这个压缩包的描述范围内,但开发者可能需要结合其他库或自定义逻辑来实现...
《易语言-银行卡校验易语言》源码详解 易语言是一种基于中文编程的软件开发工具,它以简明易懂的中文语法设计,降低了编程的门槛,使得更多的人能够参与到编程世界中来。本篇将围绕“银行卡校验易语言源码”这一...
1. **银行卡号解析**:首先,系统会接收用户输入的银行卡号,然后根据银行卡号的前几位判断出发卡组织,如中国银联、Visa、MasterCard等。 2. **Luhn校验**:使用Luhn算法对输入的银行卡号进行校验,确保其是有效的...