`
debbbbie
  • 浏览: 26858 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ruby通过Luhn算法验证信用卡卡号的有效性

    博客分类:
  • ruby
 
阅读更多
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算法快速验证信用卡卡号的方法

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

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

    本文实例讲述了Go语言通过Luhn算法验证信用卡卡号是否有效的方法。分享给大家供大家参考。具体实现方法如下: 代码如下: package main import (  “fmt”  “strings” ) const input = `49927398716 49927398717...

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

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

    银行卡号的Luhn算法

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

    js验证银行卡luhn算法

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

    Ruby-creditcardvalidations一个rubygem验证信用卡号码生成有效的数字Luhn检查

    该算法通过计算数字的奇偶位置权重和来验证其有效性。Ruby-creditcardvalidations库利用这个算法对信用卡号进行验证,确保它们是有效的。 2. **信用卡类型识别**: 这个gem可以识别不同类型的信用卡,例如Visa、...

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

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

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

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

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

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

    LUHN和MD5算法的VBS实现

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

    [计算机]C语言信用卡卡号验证.doc

    信用卡卡号验证是确保信用卡号码有效性和安全性的关键步骤。在C语言中,我们可以实现一个简单的程序来验证信用卡号码是否符合Luhn算法,这是一种广泛用于验证银行卡号的校验算法。以下是对Luhn算法和相关C语言代码的...

    ObjectiveLuhn, Luhn信用卡验证算法.zip

    ObjectiveLuhn, Luhn信用卡验证算法 Luhn算法 这是Luhn算法的一个端口,通常用于验证信用卡详细信息,objective-c ( iOS ) 。在 https://github.com/MaxKramer/SwiftLuhn 可以找到快速端口。简单地调用单

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

    Luhn算法仅仅是一个基本的格式校验工具,真正的安全性校验需要结合银行的后端系统进行验证。此外,使用OCR技术对扫描文档进行文字识别时可能会出现识别错误,开发者在应用过程中需要留意细节,确保逻辑通顺且正确。

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

    以下数字可作为一个可验证的示范cardNumber ='111111111111119'#卢恩有效号码cardNumber ='111111111111111'#无效的Luhn号码cardNumber ='1111-111111-11119'#Luhn有效数字,但格式无效cardNumber ='...

    VB.NET实现验证信用卡卡号

    在VB.NET中,验证信用卡卡号的正确性是一项常见的任务,尤其在开发电子商务或金融类应用时。这个过程通常依赖于一种称为Luhn算法(也称为模10算法)的简单校验方法。Luhn算法是为了确保信用卡号的正确性而设计的,它...

    clj-luhn:使用 Luhn 算法验证信用卡号的 clojure 库

    clj-luhn 一个 Clojure 库,旨在验证使用信用卡号。用法( clj-luhn/valid? 49927398716 ); => true( clj-luhn/valid? 79927398710 ); => false( clj-luhn/check-digit 79927398710 ); => 3安装执照版权所有 :...

    Android-Luhn-Android信用卡交易效果UI

    这个项目可能包含了一个自定义的输入框布局,以及对Luhn算法的实现,该算法用于验证信用卡号的有效性。 Luhn算法,也被称为模10校验算法或Luhn mod 10算法,是由IBM的工程师弗兰克·L·鲁hn于1954年发明的。这个...

Global site tag (gtag.js) - Google Analytics