有没有人知道增强或增强的Luhn公式的任何实现,用于检查支付卡上的模数10“双加双”校验位?
本文提出了增强功能:http://d.researchbib.com/f/6nnJcwp21wYzAioF9xo2AmY3OupTIlpl9XqJk5ZwNkZl9JZxx3ZwNkZmpmYaOxMt.pdf
增强的Luhn检查是否具有实际用途?
答案 0 :(得分:1)
这篇论文被同行评审期刊接受,这有点奇怪。该论文描述了在20世纪70年代基本上被确定为弗莱彻校验和的问题;它的长度和数据转置无法准确检测。
但是让我们考虑一下这个提案的实际方面。如果你真的深入研究细节,那么实施起来实际上是不可行的。
Luhn算法是一种简单,省力的方法来验证卡号。当信用卡开始以电子方式进行广泛处理时(之前已经完成了纸质印记),没有永远在线的网络来调用服务进行验证。可以实现Luhn而无需网络连接来执行验证。这是建立不可行性的第一个前提:您必须能够执行验证而无需遍历网络。
这种“无网络遍历”前提使得MII查找不可行。有两种方法可以实现这一点:
处理卡授权可以是异步的。亚马逊这样做;他们确认收到您的订单,并且通常会在稍后确认付款处理。
最后,作者对卡的长度做出了错误的假设。 Luhn算法适用于许多长度,因为卡号长度可以长于或短于16位。美国运通卡的消费卡为15位,其他卡为16位。商业卡可以超过16位数;我见过商用空气卡达20位数。如果作者看过IEC / ISO 7812标准,那就可以理解了。标准委员会甚至建议延长标准卡号的长度。最棒的是,当卡片编号长度延长时,Luhn算法仍会验证卡片。
帮自己一个忙,依靠Luhn作为你的第一步,然后让处理器通过现有的卡处理网络验证卡无可否认是正确的,为你做重任务。
答案 1 :(得分:1)
我进行了Google搜索,并在软件开发人员Pawel Decowski的Luhn检查中发现了Hussein等人提出的两种增强功能的软件实现。这是他的jQuery信用卡验证器,(Decowski,2015/2016)。我推测Decowski受Hussein等人的影响。
Decowski,P。(2015/2016)jquery-creditcardvalidator [在线]。可在https://github.com/PawelDecowski/jquery-creditcardvalidator处获取(2017年4月11日访问)。