信用卡校验位算法THE LUHN MOD-10
http://blogread.cn/it/article/6324?f=wb
import org.apache.commons.lang3.StringUtils;
public class CreditCardValidator {
/**
* 1. 对卡号上的每位数字乘以权重。其规则是,如果卡号数字个数是偶数,则第一位乘以2,否则就乘以1,然后以后分别是,1,2,1,2,1,2;
*
* 2. 如果每位数字乘以权重后超过9 ,则需要减去 9;
*
* 3. 将所有的处理过的加权数字求和,用 数字 10 求模运算;
*
* 4. 余数应该是0,否则可能是输入错误。也可能是一个假号。
*
* @param cardNo
* @return
*/
public static boolean isValid(String cardNo) {
if (StringUtils.isBlank(cardNo) || !StringUtils.isNumeric(cardNo))
return false;
int len = cardNo.length();
boolean isOdd = len % 2 == 1;
int total = 0;
int tem = 0;
for (int i = 0; i < len; i++) {
tem = Integer.valueOf(String.valueOf(cardNo.charAt(i)));
if (i == 0 && !isOdd) {
tem = tem << 1;
} else if (i > 0 && i % 2 == 0) {
tem = tem << 1;
}
if (tem > 9)
tem = tem - 9;
total = total + tem;
}
return total % 10 == 0;
}
}
分享到:
相关推荐
按照ISO 2894中支付卡校验位的算法 The Luhn Mod-10 Method 规定: 1、对卡号上的每位数字乘以权重。其规则是,如果卡号数字个数是偶数,则第一位乘以2,否则就乘以1,然后以后分别是,1,2,1,2,1,2;2、如果每位数字...
您可能感兴趣的文章:php实现信用卡校验位算法THE LUHN MOD-10示例php校验表单检测字段是否为空的方法使用php+Ajax实现唯一校验实现代码[简单应用]PHP校验ISBN码的函数代码php生成SessionID和图片校验码的思路和实现...
Luhn算法,也被称为模10校验算法或Luhn mod 10算法,是由IBM的工程师弗兰克·L·鲁hn于1954年发明的。这个算法广泛应用于各类识别码的校验,如信用卡号、IMEI(手机设备唯一识别码)等。其工作原理是通过对数字串...
本文将深入探讨在Kotlin中如何实现Luhn(又称模10或Luhn校验)算法,这是一种广泛用于验证各种标识号(如信用卡号、IMEI码等)有效性的简单算法。这个算法通过对数字序列进行特定计算来检测其是否符合预定格式,从而...
卢恩·莫德 ...Luhn mod N算法是Luhn算法(也称为mod 10算法)的扩展,允许它处理非数字字符序列。 当需要使用校验位来验证由字母,字母和数字的组合甚至任何任意字符集组成的标识字符串时,这将很有用。
Luhm算法,也称为Luhn mod N算法或者Mod 10算法,是由IBM工程师弗雷德里克·Luhm在1954年发明的一种简单的校验和算法。它主要用于检测数字序列(如银行卡号)的正确性,尤其是手工输入时可能出现的错误。该算法通过...
Luhn算法,也被称为模10校验算法或Luhn mod 10算法,是一种用于验证数字字符串(如信用卡号)正确性的简单算法。在信用卡领域,它被广泛用于确认输入的卡号是否合法,防止输入错误或者欺诈行为。Python3提供了一种...
1. **验证卡号**:使用Luhn算法或Mod 10算法检查卡号的校验位,确保卡号的正确性。 2. **验证有效期**:确认信用卡的有效期未过期。 3. **验证安全码(CVC/CVV)**:检查卡片背面的安全码,通常是3或4位数字,用于额外...
7. **拓展知识**:除了Fletcher's Checksum,还有其他校验码算法,如CRC(Cyclic Redundancy Check)和Luhn Algorithm(也称为MOD 10或信用卡校验算法),它们在不同的场景下各有优势。理解这些算法可以帮助你更好地...
Luhn算法最初由IBM工程师John Luhn发明,主要用于信用卡号的校验,确保数字输入的正确性。其核心思想是:从右到左对数字进行加权和校验,偶数位置的数字乘以2后若超过9,则将结果的个位数与原数相加,最后所有数字...
VISA和万事达卡都有内置的校验机制,称为Luhn算法或MOD 10算法,用于验证卡号的正确性。SQL Server作为常用的数据库管理系统,提供了一些内置的函数,可以帮助我们实现这种验证功能。 Luhn算法是一种简单的数学检查...
信用卡号码的验证通常基于Luhn算法,也被称为模10算法或MOD 10算法。该算法设计用于检测手动输入的数字序列的错误,如信用卡、IMEI号码等。以下是Luhn算法的基本步骤: 1. **反转数字顺序**:首先,从右到左读取...
这个过程通常依赖于一种称为Luhn算法(也称为模10算法)的简单校验方法。Luhn算法是为了确保信用卡号的正确性而设计的,它通过检查数字的排列方式来确认其合法性。以下将详细介绍如何使用VB.NET实现这个功能。 首先...
Luhn算法,也称为模10校验或MOD10算法,是一种简单的校验和算法,用于检测数字字符串的错误,如信用卡号、IMEI(国际移动设备识别码)和加拿大社会保险号码等。算法的基本步骤如下: 1. **反转数字顺序**:从右向左...
信用卡号的验证通常遵循特定的算法,如Luhn算法,也称为模10算法。这个算法用于检测输入的信用卡号是否符合发行者的格式规则。它的基本步骤包括: 1. **反转数字**:将信用卡号的每一位数字从右到左读取。 2. **...
常见的校验方法有Luhn算法,也称模10算法或MOD 10算法,它是许多金融机构广泛采用的一种简单有效的校验方法。 二、Luhn算法的实现 Luhn算法的基本步骤如下: 1. 从右向左,对偶数位置的数字乘以2,如果结果为两位...
一种常见的算法是模10算法(也称为 modulo 10 或 Luhn 校验算法),步骤如下: 1. **取奇偶位**: 从右向左(即从末位开始)读取条形码的数字,奇数位置的数字乘以2,偶数位置的数字不变。 2. **加法求和**: 将步骤1...
它基于模10算法,也称为Luhn算法或mod 10验证算法。算法步骤如下: 1. 从右向左遍历CLABE号码,偶数位置的数字乘以2(从个位数开始,第二位、第四位...)。 2. 如果乘以2的结果是两位数,将这两个数字相加。 3. 从...
此外,该库还提供了校验信用卡号是否有效的功能,这得益于Luhn算法,也称为模10算法或mod10算法。这个算法通过对信用卡号的每一位数字进行特定的加权和计算,确保了号码的正确性,进一步增强了检测的准确性。 在...