`
jyangzi5
  • 浏览: 212191 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

luhn算法

 
阅读更多
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算法工具,实现对输入附加校验码,检查带校验码字符串是否合法

    Luhn算法工具,实现对输入附加校验码,检查带校验码字符串是否合法

    js验证银行卡luhn算法

    Luhn算法,也被称为模10算法或Luhn校验算法,是一种广泛应用于验证各种卡片号码(如信用卡号、IMEI、VIN等)正确性的简单校验方法。它由美国IBM公司的工程师Norman Luhn于1954年发明,目的是为了检测手动输入的数字...

    银行卡号的Luhn算法

    Luhn计算模10 “隔位2倍加”校验数的公式 计算步骤如下: 1、从右边第一个数字(低序)开始每隔一位乘以2。 2、把在步骤1中获得的乘积的各位数字与原号码中位乘2的各位数字相加求和。 3、从步骤2中获得的数字邻近的...

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

    ### Python3通过Luhn算法快速验证信用卡卡号的方法 在当今数字化时代,信用卡作为一种便捷的支付方式被广泛使用。为了确保交易的安全性,各种验证机制应运而生,其中Luhn算法是一种常用的校验码算法,用于验证各种...

    用C语言 实现的 Luhn算法(信用卡校验位)_C语言_代码_下载

    纯C语言实现的Luhn算法(信用卡校验位) 示例 C 函数“check_number()”用于检查任意长度的数字字符串,在字符串末尾使用 Luhn 校验位加上示例 C 函数“calc_digit()”以计算给定字符串的校验位字符。示例“main”C...

    LUHN算法的作用是为了计算信用卡等证件号码的合法性

    LUHN算法,也被称为模10验证或Luhn校验,是用于验证一系列数字序列(如信用卡号、IMEI号码、加拿大社会保险号等)的一种简单但有效的算法。这个算法的目的是确保输入的数字序列在一定程度上是正确的,避免因为输入...

    判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)

    本篇内容主要介绍了如何使用Luhn算法来进行银行卡号的校验。Luhn算法是由IBM科学家Hans Peter Luhn发明的一种简单的校验算法,广泛用于金融行业,尤其在银行卡号校验中应用甚广。 Luhn算法校验的过程大致如下: 1....

    LUHN和MD5算法的VBS实现

    LUHN算法,也被称为Luhn校验或模10算法,是一种简单的算法,常用于验证信用卡号、IMEI(国际移动设备识别码)等数字序列的正确性。它通过计算数字序列的奇偶位和来确保输入的数字是有效的,防止输入错误。LUHN算法的...

    银行卡校验规则(Luhn算法)

    银行卡校验规则(Luhn算法)--JDK1.7下双击运行即可,详情参看https://zhuanlan.zhihu.com/p/26939610

    Go语言通过Luhn算法验证信用卡卡号是否有效的方法

    在本文中,我们将详细介绍Go语言如何使用Luhn算法来验证信用卡卡号的有效性。Luhn算法是一种简单的校验和公式,它通常用于验证各种身份识别号码,如信用卡卡号,以防止输入错误。这种方法由Hans Peter Luhn于1954年...

    LuhnAlgorithm:Java中Luhn算法的实现

    **Luhn算法,又称为模10校验算法或Luhn mod 10算法,是IBM公司的Freeman Luhn在1954年提出的一种简单的校验码生成算法。它常用于信用卡号、IMEI(国际移动设备识别码)以及一些北美地区的社会保险号等,用于检测数字...

    LuhnAlgorithmProof:使用Luhn算法验证14-16位信用卡号

    Luhn算法的Python 3.4实现 用于验证(返回True)或拒绝(返回False)Luhn兼容帐号的Python3系统。 检查14、15或16位数字卡号,以确定该数字是否符合Luhn的要求。 有关公式的详细信息,请参见: : 其中cardNumber...

    luhnacy:可用于生成满足 Luhn 算法的数字串的小宝石

    一个微小的(希望如此) gem 将自动执行一些基于 Luhn 算法(例如信用卡号、ID 号)生成/验证数字字符串的痛苦任务。 用法 要求: require 'luhnacy' 通用ValidationGeneration 验证: Luhnacy . valid? ( '...

    IMEI效验位生成器

    Luhn算法,又称模10算法,是一种简单的错误检测机制,广泛应用于信用卡号、IMEI、SIM卡ICCID等识别码的校验。该算法的基本步骤如下: 1. **初始化**:从右向左(即从第1位开始),将偶数位置的数字乘以2,如果乘积...

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

    《Luhn算法在TypeScript中的实现探析》 在信息技术领域,数据验证是保障系统安全性和数据准确性的重要环节。Luhn算法,又称模10校验算法或Luhn Mod 10校验,就是其中一种广泛应用的数据校验方法。本文将深入探讨...

    Luhn算法功能:Luhn算法检查和丢失数字的计算。-matlab开发

    Luhn算法,也被称为模10校验或信用卡校验算法,是一种简单的错误检测方法,广泛应用于信用卡号、IMEI(国际移动设备识别码)和其他序列号中,以验证其有效性。该算法由美国计算机科学家弗雷德里克·路易斯·卢恩于...

    Luhn算法学习及其Ruby版实现代码示例

    关于LUHN算法 LUHN算法,主要用来计算信用卡等证件号码的合法性。 1、从卡号最后一位数字开始,偶数位乘以2,如果乘以2的结果是两位数,将两个位上数字相加保存。 2、把所有数字相加,得到总和。 3、如果信用卡号码是...

    PHP实现通过Luhn算法校验信用卡卡号是否有效

    Luhn算法,也被称为模10校验或信用卡校验算法,是一种简单的数学方法,用于验证数字字符串的正确性,如信用卡号、IMEI(国际移动设备识别码)和加拿大社会保险号码等。这个算法的核心在于它能检测到大多数单个数字...

    php-luhn-summarize:p 的实现。 PHP中的luhn摘要算法

    Luhn 算法,也称为模10算法或检查数字算法,是一种简单的校验和算法,用于验证信用卡号、IMEI(国际移动设备识别码)和其他序列号的正确性。在 PHP 中实现 Luhn 算法可以帮助我们在处理这些数字时增加一层安全防护。...

Global site tag (gtag.js) - Google Analytics