def luhn(code)
s1 = s2 = 0
code.to_s.reverse.chars.each_slice(2) do |odd, even|
s1 += odd.to_i
double = even.to_i * 2
double -= 9 if double >= 10
s2 += double
end
(s1 + s2) % 10 == 0
end
[49927398716, 49927398717, 1234567812345678, 1234567812345670].each do |n|
p [n, luhn(n)]
end
运行结果如下
[49927398716, true]
[49927398717, false]
[1234567812345678, false]
[1234567812345670, true]
分享到:
相关推荐
主要介绍了Python3通过Luhn算法快速验证信用卡卡号的方法,涉及Python中Luhn算法的使用技巧,非常简单实用,需要的朋友可以参考下
主要介绍了Go语言通过Luhn算法验证信用卡卡号是否有效的方法,实例分析了Luhn算法的原理与验证卡号的使用技巧,需要的朋友可以参考下
本文实例讲述了PHP实现通过Luhn算法校验信用卡卡号是否有效的方法。分享给大家供大家参考。具体实现方法如下: $numbers = 49927398716 49927398717 1234567812345678 1234567812345670; foreach (split(' ', $...
纯C语言实现的Luhn算法(信用卡校验位) 示例 C 函数“check_number()”用于检查任意长度的数字字符串,在字符串末尾使用 Luhn 校验位加上示例 C 函数“calc_digit()”以计算给定字符串的校验位字符。示例“main”C...
LUHN算法的作用是为了计算信用卡等证件号码的合法性
验证卡号的有效性 Luhn计算模10 “隔位2倍加”校验数的公式 计算步骤如下: 1、从右边第一个数字(低序)开始每隔一位乘以2。 2、把在步骤1中获得的乘积的各位数字与原号码中位乘2的各位数字相加求和。 3、从步骤2中...
credit_card_validations - 一个ruby gem验证信用卡号码、生成有效的数字、Luhn检查
ObjectiveLuhn, Luhn信用卡验证算法 Luhn算法 这是Luhn算法的一个端口,通常用于验证信用卡详细信息,objective-c ( iOS ) 。在 https://github.com/MaxKramer/SwiftLuhn 可以找到快速端口。简单地调用单
基于国内银行卡号制定规则,因为目前接触到的银行项目需要用到客户端校验银行卡号,故自己用js写了一个Luhm校验算法,不足之处还望各位大侠赐教!
以下数字可作为一个可验证的示范cardNumber ='111111111111119'#卢恩有效号码cardNumber ='111111111111111'#无效的Luhn号码cardNumber ='1111-111111-11119'#Luhn有效数字,但格式无效cardNumber ='...
Luhn算法工具,实现对输入附加校验码,检查带校验码字符串是否合法
clj-luhn 一个 Clojure 库,旨在验证使用信用卡号。用法( clj-luhn/valid? 49927398716 ); => true( clj-luhn/valid? 79927398710 ); => false( clj-luhn/check-digit 79927398710 ); => 3安装执照版权所有 :...
下面小编就为大家带来一篇判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
验证各种身份号码,例如信用卡号码或 IMEI 号码。 Luhn 算法不能为我们做什么? 防止恶意攻击,Luhn algorightm 所做的就是检查数字,特别是检查数字缺失等拼写错误。 安装 $ npm install --save mod10 用法 var...
主要介绍了VB.NET实现验证信用卡卡号是否正确的代码,主要根据luhn算法来验证,有需要的小伙伴可以参考下。
LUHN和MD5数据机密算法的VBS实现
用于处理基本Luhn编号生成和验证的Ruby类 包括一个处理瑞典文公民号的类(Personnummer)。该接口支持检查有效性(长度,有效日期和满足luhn),返回性别,控制数字并生成随机的公民号。安装 $ gem install luhn用法...