问题标签 [luhn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1049 浏览

java - 我的 Luhn 算法代码有什么问题?

我正在尝试使用此代码来测试示例代码是否是 Java 中的有效信用卡号(使用Luhn 算法)。我哪里做错了?它接收一个由 16 个一位数组成的数组。任何帮助将非常感激。谢谢!

0 投票
1 回答
4936 浏览

algorithm - 信用卡号码的 Luhn 或 Verhoeff 算法

首先,我不确定这是否应该在stackoverflow上,但我想我还是会尝试询问。

以前我一直用luhn算法对信用卡号进行错误检查,但今天我想我会在php中实现verhoeff算法,主要是为了打发时间。

我在自己的卡号上对其进行了测试,它运行良好,这让我开始思考是否应该在未来使用 verhoeff 而不是 luhn 来检查我的信用卡号错误。

现在我的问题:

与 luhn 相比,使用 verhoeff 会有什么显着优势吗?

我知道 verhoeff 在它的实现中稍微复杂一些,它可以检测到比 luhn 更多的转录错误,这自然会让我相信它有点慢,但除了检测更多转录错误的优点和缺点(如果你真的可以称之为)稍微慢一点,我想不出任何其他真正的区别。

verhoeff 算法适用于所有主要卡片吗?

我知道 luhn 将适用于所有主要牌,但 verhoeff 也适用于所有主要牌吗?我假设它对所有人都有效,但我想我还是应该检查一下。

我只看到有人使用 luhn 来检查信用卡号码,这是有原因的吗?

在我作为开发人员的所有时间里,我只真正看到有人使用 luhn 算法来检查信用卡号码。这有充分的理由吗,还是仅仅是因为 luhn 更出名?

任何帮助将不胜感激,感谢您的时间。

0 投票
3 回答
8716 浏览

c - C:信用卡号码检查器/ Luhn 算法

一切看起来都很好,似乎遵循 Luhn 的算法,但是当我输入我自己的信用卡号或这个应该有效的样本号: 4388576018410707 时,它仍然返回无效......

任何人都可以找到问题吗?

0 投票
3 回答
3460 浏览

php - 使用 Luhn 的信用卡验证

我正在使用 Luhn 算法进行信用卡验证:我只需要查看该号码是否是有效的信用卡号码。

上述方法适用于 AMEX、discover、visa 和 mastercard 吗?我无法确认。

0 投票
7 回答
5840 浏览

php - LuhnCalc 和 bpay MOD10 版本 5

我正在使用以下 PHP 代码来计算 BPay 的 CRN:

但是,BPAY 似乎是 MOD 10 的第 5 版,我找不到任何文档。好像和MOD10不太一样。

以下数字经过测试:

2005,1597,3651,0584,9675

如您所见,它们都不匹配 BPAY 号码。

0 投票
13 回答
30808 浏览

javascript - Luhn算法的实现

我正在尝试实现信用卡号码的简单验证。我在 Wikipedia 上读到了 Luhn 算法:

  1. 从最右边的校验位开始计数,然后向左移动,每第二位的值加倍。
  2. 将乘积的位数(例如,10: 1 + 0 = 1, 14: 1 + 4 = 5)与原始数字中的非双位数相加。
  3. 如果总模 10 等于 0(如果总和以 0 结尾),那么根据 Luhn 公式,该数是有效的;否则无效。

在 Wikipedia 上,对 Luhn 算法的描述非常容易理解。但是,我还在Rosetta Code其他地方(存档)上看到了 Luhn 算法的其他实现。

这些实现工作得很好,但我对为什么他们可以使用数组来完成工作感到困惑。他们使用的数组似乎与 Luhn 算法无关,我看不出他们如何实现维基百科上描述的步骤。

他们为什么使用数组?它们的意义是什么,它们如何用于实现维基百科描述的算法?

0 投票
4 回答
8525 浏览

c++ - 我应该如何处理信用卡号验证算法?

我正在编写一个程序来验证信用卡号码,我必须使用 Luhn 算法。让我提前说一下,我刚刚开始学习编程(我们像上周一样讨论了循环),所以有很多我不熟悉的东西。我的一个检查算术的函数有问题。基本上,它必须从右到左每隔一个数字加倍并将所有内容加在一起。但是如果你将一个数字加倍,比如 5,你得到 10,那么你将不得不将 1+0=1 添加到总和而不是 10。这就是我坚持的部分。我怎样才能把它放在一个程序中?

到目前为止的示例代码:

0 投票
3 回答
3263 浏览

javascript - 在 JavaScript 中实现 Luhn 算法

我正在尝试将我在 C# 中的 Luhm 算法实现移植到 JavaScript。我把它移植过来了,我认为它可以工作,但我无法获得合法的卡来验证。我的 AMEX 验证很好,但我的两个 VISA 拒绝这样做。这是代码:

有人可以为我指出错误的正确方向吗?我认为这在 C# 版本中运行良好,但现在我有疑问......提前谢谢!

0 投票
1 回答
131 浏览

paypal - PayPal Pro:检查无效的信用卡号码是否足够?

在进行 PayPal Pro 付款之前,我使用 Luhn 算法检查信用卡号。我知道这只能排除无效号码,而不是恶意攻击(有效但非真实号码)。

这种方式仍然被认为是可以接受的,还是任何在线支付系统都绝对有必要检查 CC 号码是否真实意味着它们与真实卡匹配?如果是,那么有没有一种简单的方法可以实现这一目标?

0 投票
1 回答
176 浏览

paypal - Luhn算法功能有问题?

在我的 PayPal Pro 信用卡支付系统中,我使用了这个问题的第一个答案中给出的 Luhn 算法函数。然而,我有几个美国客户显然试图用他们的信用卡付款,并且他们的详细信息被函数拒绝(返回 false),尽管我的脚本允许他们尝试任意次数。

同时,我知道其他客户的抄送信息确实被该功能接受并且付款成功。

我的结论是函数本身一定有问题。那可能吗?