问题标签 [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 投票
6 回答
23425 浏览

javascript - 信用卡的客户端验证

在用户点击提交之前,是否有人有一个库或 JavaScript 片段来验证信用卡的校验位?

0 投票
5 回答
630 浏览

algorithm - 消息代码验证算法

如果你以前读过这个帖子——忘记我写的一切,我写它的时候一定是喝醉了。我重新开始:

我目前正在做一个项目,我们将使用某种算法来验证用户输入。需要考虑三个方面;

客户 - 浏览我们的网页

公司 - 我们,处理客户的请求

第 3 方公司 - 处理客户消息

在我们的网页上,我们将向客户展示有关产品的一些信息。如果他/她想了解有关产品的更多信息,他必须联系第 3 方公司并说明产品代码(本身不是唯一的,但也不常见)。作为回报,客户将收到来自第三方公司的一些其他代码,他应该在我们的网页上输入这些代码,我们将在其中验证代码以供批准。

如果我们公司与第三方公司没有任何互动,那就最好不过了。纯加密是不可能的,因为它会生成一个太长的字符串。我们通过 SMS 进行此操作,因此代码必须简短。

到目前为止我想出了什么:

对于每件产品,我都会在 base 16 (0-f) 中生成一个有点独特的代码(它是否唯一并不重要)。想要了解有关产品的更多信息的客户向第三方公司发送一条短信,说明产品代码。作为回报,客户端收到相同的代码,但数字被乘以(可能乘以 2)并转换为基数 36。除此之外,最后一个字符被添加到代码中,即控制号,以使代码对 Luhn 有效以 36 为基数的算法。用户输入收到的代码,我们公司在服务器端根据产品代码验证它(根据 Luhn 验证,除以 2 并切换回基数 16)。

这听起来相当安全和适当吗?当其中两个不需要通信时,它是由三方发送消息的有效方式吗?

很抱歉编辑,但当我写第一篇文章时,我的想法一定在别处。

0 投票
5 回答
2586 浏览

c# - 有谁知道哪里有可以生成示例信用卡号的 c# 代码或 dll

对于我们正在处理的应用程序,我需要生成通过 Luhn 算法但也是唯一的示例信用卡号,因此我们不能使用示例信用卡号。

我们需要能够一次生成大约 300 个卡号,理想情况下,我可以在生成输入数据时做到这一点。

非常感谢

0 投票
7 回答
16286 浏览

php - 生成 Luhn 校验和

验证 Luhn 校验和的实现有很多,但生成它们的实现却很少。我遇到过这个,但是在我的测试中发现它有问题,我不理解 delta 变量背后的逻辑。

我已经制作了这个应该生成 Luhn 校验和的函数,但由于某种原因,我还没有理解生成的校验和在一半的时间里是无效的。

一些例子:

我正在针对此页面验证生成的校验和,我在这里做错了什么?


为了将来参考,这里是工作功能。

我删除了 $parity 变量,因为我们不需要它来实现这个目的,并验证:

0 投票
1 回答
2532 浏览

c# - 卢恩校验位

我似乎无法弄清楚我的校验码有什么问题!

有时,它会产生 2 个长度校验位值

例子

所有生成的数字都是有效的,可以在http://www.ee.unb.ca/cgi-bin/tervo/luhn.pl?N=127753224800013查看

代码:http ://dl.dropbox.com/u/678582/Email/GenerateAN.txt

0 投票
6 回答
720 浏览

php - PHP 客户端 PIN 安全性

我目前正在开发一个系统,该系统具有一个功能,客户可以通过提供 PIN“号码”来查看他们的购买/续订/等详细信息。

由于我们所针对的客户类型,使用 PIN 代替登录信息。PIN 印在发送给他们的文件上。

他们提供 PIN 时显示的视图不会显示信用卡等高度敏感的信息,但会显示产品名称、类型、价格、条形码、维修等不太敏感的信息。

有问题的问题是PIN。我选择使用随机的 5 个字符 PIN(0-9,az AZ) - 区分大小写。我将删除一些同形文字('I'、'1'、'l'、'0'、'O'、'rn'、'vv'),因此实际的组合数量实际上更少。

我对此有几个问题:

  1. 这种做法是否可以接受?
  2. 我是否应该编写一个锁定机制来“禁止”来自具有大量失败尝试的 IP 的流量?*
  3. 我应该编写一个错误检查系统(类似于 Luhn 的信用卡号码算法)吗?
  4. *我应该使用验证码系统吗?
0 投票
2 回答
4086 浏览

javascript - JavaScript 卡 PAN 校验位 Luhn 验证

我使用下面链接中的代码尝试验证信用卡,但是当我在字段中提交错误数据时没有收到警报。

在执行 Luhn 检查之前去除空格

我的表格如下:

也许我使用了错误的代码?

0 投票
4 回答
47100 浏览

javascript - 从卡号识别卡类型

我有一系列看起来像这样的卡片类型

但是我希望能够根据输入的卡号找到卡类型。例如,如果他们从下拉列表中选择他们的卡类型,即签证,那么信用卡号应该以 4 开头,否则当他们提交表格时,应该显示某种消息说这是(无论是什么卡,请更换卡类型)。任何帮助,将不胜感激。

卡号文本字段的 ID 是 CardNumber。我不确定可能需要什么其他信息,我有一个名为 Validate 的函数来验证表单的其余部分,还有一个名为 Calculate 的函数来进行 luhn 检查。

0 投票
2 回答
122 浏览

php - 插入困难

我正在使用 mysql/php。

我的桌子看起来像

我正在生成代码为的优惠券代码:

  • 1 个随机数(例如 64)
  • 1 个固定数字(例如 352)
  • id 字段的值 (1,2,3,4,5...)
  • 1 个校验位(luhn 算法)。

使用 php 执行此操作的明显问题是我必须进行选择,获取下一个自动增量值,计算代码,插入,此时可能已插入另一行。

相反,我想做的是,

去做insert into vouchers (voucher) value('64352')并让它产生我的其余部分。

我怎样才能做到这一点?功能/触发器?

0 投票
3 回答
1891 浏览

javascript - 在每个奇数和偶数位置分块一个字符串

我对javascript一无所知。

假设字符串“3005600008000”,我需要找到一种方法将奇数位置的所有数字乘以 2,偶数位置的数字乘以 1。

我写的这个伪代码输出(我认为)TRUE 为奇数(即“0”),

我不确定这是对的:我不相信它会在奇数(甚至后来)位置对字符串进行分块/拆分。

我该怎么做?你能提供一些提示吗?

我的目标是在网页中实现智能卡 ID 号的验证例程。

我试图实现的逻辑如下:

· 1) 从左边开始,将奇数位的所有数字乘以 2,偶数位的数字乘以 1。

· 2) 如果一位数乘以 2 的结果是两位数(例如“7 x 2 = 14”),则将结果的位数相加以产生一个新的一位数结果(“ 1+4=5")。

· 3) 将所有个位数的结果加在一起。

· 4) 校验位是您必须添加到此结果中的数量,才能达到下一个最高的十倍数。例如,如果第 3 步中的和是 22,要达到 10 的下一个最大倍数(即 30),您必须将 8 加到 22。因此校验位是 8。

这就是整个想法。Google 搜索智能卡 ID 验证没有返回任何结果,我开始认为在 Javascript 中执行此操作有点矫枉过正......

欢迎任何输入。