`
guojch
  • 浏览: 70768 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

信用卡校验位算法THE LUHN MOD-10

阅读更多

信用卡校验位算法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;
	}

}


分享到:
评论

相关推荐

    php实现信用卡校验位算法THE LUHN MOD-10示例

    按照ISO 2894中支付卡校验位的算法 The Luhn Mod-10 Method 规定: 1、对卡号上的每位数字乘以权重。其规则是,如果卡号数字个数是偶数,则第一位乘以2,否则就乘以1,然后以后分别是,1,2,1,2,1,2;2、如果每位数字...

    php正则校验用户名介绍

    您可能感兴趣的文章:php实现信用卡校验位算法THE LUHN MOD-10示例php校验表单检测字段是否为空的方法使用php+Ajax实现唯一校验实现代码[简单应用]PHP校验ISBN码的函数代码php生成SessionID和图片校验码的思路和实现...

    Android-Luhn-Android信用卡交易效果UI

    Luhn算法,也被称为模10校验算法或Luhn mod 10算法,是由IBM的工程师弗兰克·L·鲁hn于1954年发明的。这个算法广泛应用于各类识别码的校验,如信用卡号、IMEI(手机设备唯一识别码)等。其工作原理是通过对数字串...

    Kotlin中 luhn (mod 10)算法的快速简单的就地实现_kotlin_代码_下载

    本文将深入探讨在Kotlin中如何实现Luhn(又称模10或Luhn校验)算法,这是一种广泛用于验证各种标识号(如信用卡号、IMEI码等)有效性的简单算法。这个算法通过对数字序列进行特定计算来检测其是否符合预定格式,从而...

    LuhnModN:Mod N的Luhn算法JavaScript实现

    卢恩·莫德 ...Luhn mod N算法是Luhn算法(也称为mod 10算法)的扩展,允许它处理非数字字符序列。 当需要使用校验位来验证由字母,字母和数字的组合甚至任何任意字符集组成的标识字符串时,这将很有用。

    【原创】纯javascript实现银行卡号的Luhm验证或校验算法

    Luhm算法,也称为Luhn mod N算法或者Mod 10算法,是由IBM工程师弗雷德里克·Luhm在1954年发明的一种简单的校验和算法。它主要用于检测数字序列(如银行卡号)的正确性,尤其是手工输入时可能出现的错误。该算法通过...

    Python3通过Luhn算法快速验证信用卡卡号的方法

    Luhn算法,也被称为模10校验算法或Luhn mod 10算法,是一种用于验证数字字符串(如信用卡号)正确性的简单算法。在信用卡领域,它被广泛用于确认输入的卡号是否合法,防止输入错误或者欺诈行为。Python3提供了一种...

    web服务验证信用卡

    1. **验证卡号**:使用Luhn算法或Mod 10算法检查卡号的校验位,确保卡号的正确性。 2. **验证有效期**:确认信用卡的有效期未过期。 3. **验证安全码(CVC/CVV)**:检查卡片背面的安全码,通常是3或4位数字,用于额外...

    手机IMEI校验码算法易语言源码-易语言

    7. **拓展知识**:除了Fletcher's Checksum,还有其他校验码算法,如CRC(Cyclic Redundancy Check)和Luhn Algorithm(也称为MOD 10或信用卡校验算法),它们在不同的场景下各有优势。理解这些算法可以帮助你更好地...

    AccountNumberKata.TypeScript:Luhn 算法的两个示例实现

    Luhn算法最初由IBM工程师John Luhn发明,主要用于信用卡号的校验,确保数字输入的正确性。其核心思想是:从右到左对数字进行加权和校验,偶数位置的数字乘以2后若超过9,则将结果的个位数与原数相加,最后所有数字...

    SQL函数来验证给定的VISA /万事达卡的“校验位”

    VISA和万事达卡都有内置的校验机制,称为Luhn算法或MOD 10算法,用于验证卡号的正确性。SQL Server作为常用的数据库管理系统,提供了一些内置的函数,可以帮助我们实现这种验证功能。 Luhn算法是一种简单的数学检查...

    credit-card-checker:信用卡检查程序项目

    信用卡号码的验证通常基于Luhn算法,也被称为模10算法或MOD 10算法。该算法设计用于检测手动输入的数字序列的错误,如信用卡、IMEI号码等。以下是Luhn算法的基本步骤: 1. **反转数字顺序**:首先,从右到左读取...

    VB.NET实现验证信用卡卡号

    这个过程通常依赖于一种称为Luhn算法(也称为模10算法)的简单校验方法。Luhn算法是为了确保信用卡号的正确性而设计的,它通过检查数字的排列方式来确认其合法性。以下将详细介绍如何使用VB.NET实现这个功能。 首先...

    CreditCardManager:用于验证和保存信用卡的 iOS 应用程序

    Luhn算法,也称为模10校验或MOD10算法,是一种简单的校验和算法,用于检测数字字符串的错误,如信用卡号、IMEI(国际移动设备识别码)和加拿大社会保险号码等。算法的基本步骤如下: 1. **反转数字顺序**:从右向左...

    credit-card-validator:简单的Clojure信用卡验证程序

    信用卡号的验证通常遵循特定的算法,如Luhn算法,也称为模10算法。这个算法用于检测输入的信用卡号是否符合发行者的格式规则。它的基本步骤包括: 1. **反转数字**:将信用卡号的每一位数字从右到左读取。 2. **...

    易语言-银行卡校验易语言

    常见的校验方法有Luhn算法,也称模10算法或MOD 10算法,它是许多金融机构广泛采用的一种简单有效的校验方法。 二、Luhn算法的实现 Luhn算法的基本步骤如下: 1. 从右向左,对偶数位置的数字乘以2,如果结果为两位...

    条形码末位计算

    一种常见的算法是模10算法(也称为 modulo 10 或 Luhn 校验算法),步骤如下: 1. **取奇偶位**: 从右向左(即从末位开始)读取条形码的数字,奇数位置的数字乘以2,偶数位置的数字不变。 2. **加法求和**: 将步骤1...

    detect-creditcard

    此外,该库还提供了校验信用卡号是否有效的功能,这得益于Luhn算法,也称为模10算法或mod10算法。这个算法通过对信用卡号的每一位数字进行特定的加权和计算,确保了号码的正确性,进一步增强了检测的准确性。 在...

    clabe-checksum:CLBE 银行编号的校验和验证

    它基于模10算法,也称为Luhn算法或mod 10验证算法。算法步骤如下: 1. 从右向左遍历CLABE号码,偶数位置的数字乘以2(从个位数开始,第二位、第四位...)。 2. 如果乘以2的结果是两位数,将这两个数字相加。 3. 从...

Global site tag (gtag.js) - Google Analytics