php - Luhn算法问题

标签 php mysql algorithm luhn

我决定使用 Luhn 算法来验证一些瑞典社会安全号码。通过自己编写函数,我让它按计划工作,尽管存在一些问题。通过我的代码和我尝试过的其他代码,我发现它仍然可以验证简单的组合,例如 2222222222 和 4444444444 是否有效。

这两个示例很容易避免,但它让我想知道其余的组合是假的,但仍然通过使用该算法验证为真。

是我,还是我看过的那些例子,代码出了问题,或者这是算法的已知错误?如果是这样,我该如何解决或者是否有其他更合适的方法?

最佳答案

Luhn 算法并不是为了验证 SSN 号码是否有效。只是它的格式有效。它有助于捕获错误输入的数字,并使黑客/垃圾邮件发送者破坏您的系统的尝试更加困难。这并不是为了阻止输入错误的数字。

此算法也用于美国的信用卡号码。但是像 4111111111111111 这样的测试卡号就可以通过了。在您尝试付款之前捕获错误数字非常有帮助,即使付款不成功,每次付款都会产生费用。但要最终知道信用卡号码是否有效,您需要实际对其进行收费。

关于php - Luhn算法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15555367/

相关文章:

mysql - "Column count doesn' t 匹配行中的值计数“但确实如此

java - O(1) 的映射同时搜索键和值

algorithm - 如何在 Haskell 中实现 ThiSTLEthwaite 算法?

PHP 根本不检测连接中止

php - Yii 关系记录与来自其他表的条件

mysql - 使用 MySQL 作为 Metastore 从 HIVE 查询元数据

代码和表设计的mysql性能问题

javascript - 根据 360 度重新排列数组

php - 扩展 attach() 方法?

php - 如何在 Php mySql 中按字母顺序显示表数据?