1

我正在用 PHP 构建一个管理器类来管理信用卡支付授权。使用信用卡,我们可以保留First6last4和。expiration_Monthexpiration_Year

我真的很想知道这 4 个变量的组合有多独特,以及遇到另一个变量的可能性有多大。

取决于何时测试我们是否已经获得新卡的有效授权的可能性有多大。如果我们已经获得了特定卡的授权,则无需再次运行这些号码。相反,我们可以找到已经授权的卡并重新授权。但是,我不想运行错误的卡,因为它有类似First6last4,expiration_Monthexpiration_Year..

我的目标是限制信用卡数据的数据冗余、对 CC 处理器 API 的访问以及对客户卡的不必要授权。

4

2 回答 2

5

前 6 个告诉你你正在处理什么样的卡。发行人名单见:

http://en.wikipedia.org/wiki/List_of_Issuer_Identification_Numbers

最后四个基本上是随机的。月份基本上是随机的,年份将在从当前年份到可能 6 年后的小范围内。年份将在可能的值之间表现出一些偏差。

如果您将这些项目组合起来尝试唯一识别一张卡片,您几乎肯定会发生冲突。这不是一件可靠的事情。

编辑

以下是与此场景类似的近期安全马裤示例

http://blogs.cisco.com/security/6-5-million-password-hashes-suggest-a-possible-breach-at-linkedin/

http://www.infoworld.com/d/security/nvidia-investigating-breach-of-hashed-passwords-197796

https://www.infoworld.com/d/security/passwords-leaked-yahoo-boozy-preachy-angry-and-easy-197696

如果黑客可以从一家大型网络公司的数据库中下载数据(通常是架构中最受防火墙保护的部分),他们很有可能也可以访问应用程序层并获取访问该应用程序的源代码或已编译的应用程序。数据层。

于 2012-12-10T21:06:05.733 回答
3

扩展上一个答案。左边的 6 个是 BIN,可能对你所有的卡片都是一样的,所以这些对匹配卡片没有帮助。鉴于右侧 4 是随机的,月份是随机的,并且年份有 6 个值中的 1 个,这意味着您有 10000 * 12 * 6 = 720,000 个唯一组合。

如果您总共有 100,000 张牌,那么您发生碰撞的几率是七分之一。如果您有超过 1,500,000 张卡,那么每次交易几乎肯定会发生冲突。

于 2012-12-11T01:49:16.307 回答