TheLuhn algorithmorLuhn
formula, also known as the "modulus10"
or "mod 10"algorithm,
is a simplechecksumformula
used to validate a variety of identification numbers, such ascredit
card numbers,IMEI
numbers,National
Provider Identifier numbersin US andCanadianSocial
Insurance Numbers. It was created byIBMscientistHans
Peter Luhnand described inU.S.
Patent No. 2,950,048, filed on January 6, 1954, and granted on August 23, 1960.——来自维基百科(http://en.wikipedia.org/wiki/Luhn_algorithm)。
案例
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。
该校验的过程:
1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。
2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。
3、将奇数位总和加上偶数位总和,结果应该可以被10整除。
例如,卡号是:5432123456788881
则奇数、偶数位(用红色标出)分布:5432123456788881
奇数位和=35
偶数位乘以2(有些要减去9)的结果:16
2 6 1 5 7 7,求和=35。
最后35+35=70可以被10整除,认定校验通过。
运行结果:
Please input your credit card number:
5432123456788881
第0位数字是:1
第1位数字是:8
第2位数字是:8
第3位数字是:8
第4位数字是:8
第5位数字是:7
第6位数字是:6
第7位数字是:5
第8位数字是:4
第9位数字是:3
第10位数字是:2
第11位数字是:1
第12位数字是:2
第13位数字是:3
第14位数字是:4
第15位数字是:5
奇数位的和是:35
偶数位的和是:35
Recept.
分享到:
相关推荐
银行卡号Luhn校验算法的JS实现.pdf
Luhn算法工具,实现对输入附加校验码,检查带校验码字符串是否合法
Luhn算法Java中Luhn算法的实现
Kotlin中luhn 检查算法的快速简单的就地实现
Luhn算法的Java实现 将jLuhn添加到您的项目 玛文 添加以下存储库: <id>jitpack.io <url>https://jitpack.io</url> 和以下依赖项: <groupId>com.github.Olverine</groupId> <artifactId>jLuhn ...
纯C语言实现的Luhn算法(信用卡校验位) 示例 C 函数“check_number()”用于检查任意长度的数字字符串,在字符串末尾使用 Luhn 校验位加上示例 C 函数“calc_digit()”以计算给定字符串的校验位字符。示例“main”C...
LUHN和MD5数据机密算法的VBS实现
下面小编就为大家带来一篇判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Luhn计算模10 “隔位2倍加”校验数的公式 计算步骤如下: 1、从右边第一个数字(低序)开始每隔一位乘以2。 2、把在步骤1中获得的乘积的各位数字与原号码中位乘2的各位数字相加求和。 3、从步骤2中获得的数字邻近的...
银行卡校验规则(Luhn算法)--JDK1.7下双击运行即可,详情参看https://zhuanlan.zhihu.com/p/26939610
基于国内银行卡号制定规则,因为目前接触到的银行项目需要用到客户端校验银行卡号,故自己用js写了一个Luhm校验算法,不足之处还望各位大侠赐教!
Luhn Mod N算法JavaScript实现 Luhn mod N算法是Luhn算法(也称为mod 10算法)的扩展,允许它处理非数字字符序列。 当需要使用校验位来验证由字母,字母和数字的组合甚至任何任意字符集组成的标识字符串时,这将很...
PHP-Luhn-总结关于是 p 的实现。 PHP 中的 luhn 总结算法,在页面上描述版权版权所有 (c) 2014 Glenn De Backer。 有关详细信息,请参阅许可证。
主要介绍了PHP实现通过Luhn算法校验信用卡卡号是否有效,实例分析了php实现Luhn算法及相关应用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
ObjectiveLuhn, Luhn信用卡验证算法 Luhn算法 这是Luhn算法的一个端口,通常用于验证信用卡详细信息,objective-c ( iOS ) 。在 https://github.com/MaxKramer/SwiftLuhn 可以找到快速端口。简单地调用单
卢恩 生成并验证Luhn校验位与安装pip install luhn使用verify检查数字字符串>> > from luhn import *>> > verify ( '356938035643809' )True>> > verify ( '534618613411236' )False 并使用generate来产生它们>> > ...
一个微小的(希望如此) gem 将自动执行一些基于 Luhn 算法(例如信用卡号、ID 号)生成/验证数字字符串的痛苦任务。 用法 要求: require 'luhnacy' 通用ValidationGeneration 验证: Luhnacy . valid? ( '...
按照ISO 2894中支付卡校验位的算法 The Luhn Mod-10 Method 规定: 1、对卡号上的每位数字乘以权重。其规则是,如果卡号数字个数是偶数,则第一位乘以2,否则就乘以1,然后以后分别是,1,2,1,2,1,2;2、如果每位数字...
主要介绍了Python3通过Luhn算法快速验证信用卡卡号的方法,涉及Python中Luhn算法的使用技巧,非常简单实用,需要的朋友可以参考下