package cn.com.wuzhq.digui; /** ** 发卡机构标识码(bin)(6位)+ 发卡机构自定义位(6~12位)+ 校验码(1位) **/ public class Luhn { /** * Luhn算法 * 根据卡号获取校验位 * @param cardNumber * @return */ public static int getCheckNumber(String cardNumber){ int totalNumber = 0; for (int i = cardNumber.length()-1; i >= 0; i-=2) { int tmpNumber = calculate(Integer.parseInt(String.valueOf(cardNumber.charAt(i))) * 2); if (i==0) { totalNumber += tmpNumber; }else { totalNumber += tmpNumber + Integer.parseInt(String.valueOf(cardNumber.charAt(i-1))); } } if (totalNumber >= 0 && totalNumber < 9) { return (10 - totalNumber); }else { String str = String.valueOf(totalNumber); if (Integer.parseInt(String.valueOf(str.charAt(str.length()-1))) == 0) { return 0; }else { return (10 - Integer.parseInt(String.valueOf(str.charAt(str.length()-1)))); } } } /** * 计算数字各位和 * @param number * @return */ public static int calculate(int number){ String str = String.valueOf(number); int total = 0; for (int i = 0; i < str.length(); i++) { total += Integer.valueOf(Integer.parseInt(String.valueOf(str.charAt(i)))); } return total; } public static void main(String arg[]){ //String cardNumber = "621785360000165466"; //String cardNumber = "622521190367959"; String cardNumber = "622700422667015732"; System.out.println(getCheckNumber(cardNumber)); } }
相关推荐
Luhn算法工具,实现对输入附加校验码,检查带校验码字符串是否合法
纯C语言实现的Luhn算法(信用卡校验位) 示例 C 函数“check_number()”用于检查任意长度的数字字符串,在字符串末尾使用 Luhn 校验位加上示例 C 函数“calc_digit()”以计算给定字符串的校验位字符。示例“main”C...
Luhn计算模10 “隔位2倍加”校验数的公式 计算步骤如下: 1、从右边第一个数字(低序)开始每隔一位乘以2。 2、把在步骤1中获得的乘积的各位数字与原号码中位乘2的各位数字相加求和。 3、从步骤2中获得的数字邻近的...
基于国内银行卡号制定规则,因为目前接触到的银行项目需要用到客户端校验银行卡号,故自己用js写了一个Luhm校验算法,不足之处还望各位大侠赐教!
主要介绍了Python3通过Luhn算法快速验证信用卡卡号的方法,涉及Python中Luhn算法的使用技巧,非常简单实用,需要的朋友可以参考下
下面小编就为大家带来一篇判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
LUHN算法的作用是为了计算信用卡等证件号码的合法性
银行卡校验规则(Luhn算法)--JDK1.7下双击运行即可,详情参看https://zhuanlan.zhihu.com/p/26939610
Luhn算法Java中Luhn算法的实现
主要介绍了Go语言通过Luhn算法验证信用卡卡号是否有效的方法,实例分析了Luhn算法的原理与验证卡号的使用技巧,需要的朋友可以参考下
Luhn算法的Python 3.4实现 用于验证(返回True)或拒绝(返回False)Luhn兼容帐号的Python3系统。 检查14、15或16位数字卡号,以确定该数字是否符合Luhn的要求。 有关公式的详细信息,请参见: : 其中cardNumber...
一个微小的(希望如此) gem 将自动执行一些基于 Luhn 算法(例如信用卡号、ID 号)生成/验证数字字符串的痛苦任务。 用法 要求: require 'luhnacy' 通用ValidationGeneration 验证: Luhnacy . valid? ( '...
LUHN和MD5数据机密算法的VBS实现
关于LUHN算法 LUHN算法,主要用来计算信用卡等证件号码的合法性。 1、从卡号最后一位数字开始,偶数位乘以2,如果乘以2的结果是两位数,将两个位上数字相加保存。 2、把所有数字相加,得到总和。 3、如果信用卡号码是...
luhncheck.m 将确定给定的数字是否符合 Luhn 算法。 findluhndig.m 将根据 Luhn 算法提供一个缺失的数字。
Luhn算法的Java实现 将jLuhn添加到您的项目 玛文 添加以下存储库: <id>jitpack.io <url>https://jitpack.io</url> 和以下依赖项: <groupId>com.github.Olverine</groupId> <artifactId>jLuhn ...
主要介绍了PHP实现通过Luhn算法校验信用卡卡号是否有效,实例分析了php实现Luhn算法及相关应用技巧,具有一定参考借鉴价值,需要的朋友可以参考下