纲举目张

  • 说明
  • 代码code
  • 使用方法

说明

之前我讲了身份证号校验功能函数,本次就介绍一下,银行卡和信用卡卡号的校验功能函数。参考百度百科中的介绍:

Luhn 算法或是Luhn 公式,也被称作“模10算法”。它是一种简单的校验公式,一般会被用于身份证号码,IMEI号码,美国供应商识别号码,或是加拿大的社会保险号码的验证。该算法是由IBM的科学家Hans Peter Luhn所创造,于1954年1月6日提出该专利的申请,并于1960年8月23日被授予,在美国的专利号为2950048。
该算法一直都被大家所公用,并且时至今日应用也很广泛。它被指定在ISO/IEC7812-1。它的目的不是成为一种加密安全的哈希函数;它的目的是防止意外出现的错误,而不是恶意攻击。很多信用卡和众多的政府身份识别号码都使用该算法从一系列的随机数字中提取有效的数字。

代码code

Sub 引用函数的过程()If Luhn("6216600000001234") = True ThenMsgBox "账号符合Luhn规则"ElseMsgBox "账户不符合Luhn规则请检查"End If
End SubFunction Luhn(strAccount As String) As BooleanDim intLength As IntegerDim intSum As IntegerDim strMid As StringstrAccount = Trim(strAccount)intLength = Len(strAccount)For i = intLength - 1 To 1 Step -1strMid = Mid(strAccount, i, 1)If intLength Mod 2 Xor i Mod 2 Then '需要处理的数位strMid = Str(Val(strMid) * 2)If Val(strMid) - 10 >= 0 Then '乘以2之后大于等于10需要将个位和十位相加,也就是减去9strMid = Str(Val(strMid) - 9)End IfEnd IfintSum = intSum + Val(strMid)NextDim intFinall As IntegerintFinall = intSum * 9 Mod 10If intFinall = Val(Right(strAccount, 1)) ThenLuhn = TrueElseLuhn = FalseEnd IfEnd Function

使用方法

只要运行“引用函数的过程”即可,该过程就引用了Luhn函数并将卡号做为参数传入,本例中的卡号虽然是乱编的,但是神奇的是运行的结果是“账号符合Luhn规则”(不是算法有问题,只是太凑巧了!)。

如有不知道如何使用或有其他问题请在评论区留言。

【Excel VBA】银行卡信用卡卡号校验功能函数相关推荐

  1. php验证卡号,PHP验证信用卡卡号是否正确函数

    这篇文章主要介绍了PHP验证信用卡卡号是否正确函数,本文直接给出实现代码,需要的朋友可以参考下 可以使用以下PHP函数,,验证一个卡号是否是信用卡: function validateCard ( $ ...

  2. 【Excel VBA】身份证号校验功能函数

    纲举目张 说明 代码code 使用方法 说明 在处理工作数据时经常会有身份证号,而身份证号作为唯一能够精确标记某个人的关键数据,所以身份证号的正确与否就非常关键,而一般身份证号都是手工录入为主,大多数 ...

  3. php 卡号算法,PHP实现通过Luhn算法校验信用卡卡号是否有效_PHP

    本文实例讲述了PHP实现通过Luhn算法校验信用卡卡号是否有效的方法.分享给大家供大家参考.具体实现方法如下: $numbers = "49927398716 49927398717 123 ...

  4. 招商银行信用卡卡号识别项目(第一篇),Python OpenCV 图像处理取经之旅第 53 篇

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧.本篇博客是这个系列的第 53 篇. 该系列文章导航参考:https://blog.csdn.net/hihell/categ ...

  5. .NET Core 如何生成信用卡卡号

    点击上方蓝字关注"汪宇杰博客" 导语 上个月我写了<.NET Core 如何验证信用卡卡号>,不少朋友表示挺有兴趣.在金融科技行业的实际工作中,通常还需要生成信用卡卡号 ...

  6. “此网站使用的安全性配置已过时,这可能会导致您的信息(例如密码、消息或信用卡卡号)”

    浏览器报错内容和截图: 您的连接存在安全隐患: 此网站使用的安全性配置已过时,这可能会导致您的信息(例如密码.消息或信用卡卡号) . 解决办法: 是将网站的TLS升级为安全的1.2

  7. 【项目实战二】基于模板匹配和形态学操作的信用卡卡号识别(OpenCV+Python)

    前言:信用卡卡号识别技术的发展有利于提高银行系统的业务水平和办事效率.相信此次通过学习使用OpenCV中的图像处理方法来实现信用卡卡号识别的项目,能让大家清楚地了解图像处理技术的一般方法与步骤以及如何 ...

  8. 此网站使用的安全性配置已过时,这可能会导致您的信息(例如密码、消息或信用卡卡号)谷歌打不开https网站

    浏览器报错内容和截图: 您的连接存在安全隐患: 此网站使用的安全性配置已过时,这可能会导致您的信息(例如密码.消息或信用卡卡号) . 在这里插入图片描述 解决办法: 是将网站的TLS升级为安全的1.2 ...

  9. php信用卡卡号验证函数

    介绍一个php信用卡卡号验证函数,可以验证一个卡号是否是信用卡. function validateCard ($cardnumber) {$cardnumber = preg_replace (&q ...

  10. 验证6种信用卡卡号的代码

    验证6种信用卡卡号的代码 作者:BEUS 日期:2006-08-25 字体大小: 小 中 大 可以验证的信用卡种类有: V - Visa M - MasterCard           A - Am ...

最新文章

  1. 幼儿园语言活动包括哪几类_幼儿园教育:《一起玩》语言活动教案
  2. java 实验4 异常
  3. java8编译_为什么在Java7中编译而在Java8中编译?
  4. alexnet训练多久收敛_AlexNet浅析
  5. [react] react中修改prop引发的生命周期有哪几个?
  6. 跨浏览器的元素的竖直排列
  7. 如何获取函数的变长参数(va_list, va_start, va_arg, va_end)
  8. Spring深入学习之IOC与AOP
  9. python源代码文件加密
  10. win10计算机休眠快捷键,win10电脑休眠快捷键是什么_window10电脑睡眠快捷键怎么按-win7之家...
  11. DrawIO 基于MinIO以及OSS私有云方案
  12. Cesium for UE4 4.27 demo实现代码
  13. 要来了!国内安卓统一推送标准将于 今年3 月开启测试
  14. java安卓登入界面代码_android项目——登录界面
  15. 支付那些事,支付设计遇到的那些坑(一)(聚合支付平台踩过的那些坑)
  16. win 7 下使用超级终端
  17. Regeorg 从python2改造为python3-从实战中学习socks5协议
  18. android仿iphone日期时间选择器,Android仿iPhone日期时间选择器详解
  19. 数字怎么横 竖排_怎样在WORD文字竖排时让数字也竖立?
  20. 李宏毅课程-线性代数-课节2-3: 线性代数 vs. 其它必修课课程速览

热门文章

  1. PhpStorm 2016.2 Mac破解版
  2. Could not locate executable null\bin\winutils.exe in the Hadoop binaries解决方式
  3. 【JAVASE】IO系列 BufferedReader(超详细解析)
  4. JAVA-day09-多线程
  5. P3120 [USACO15FEB]Cow Hopscotch G
  6. 11 风险管理 人人都是项目经理系列(第11/13篇)
  7. systemverilog : constraint slove... before 详解
  8. Java 基础系列(七) --- 透彻学习Java的接口
  9. 1 - 我理解的软件测试
  10. 美国 android手机号码,格式编辑文本为美国电话号码1(xxx)-xxxx你在android中键入?...