问题标签 [credit-card-track-data]
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.
regex - 用于检测信用卡号的算法减少误报/负数
我想创建一种算法,可以从各种类型的文件中检测信用卡号 (CCN)。
如何查找 CCN 的简单场景是使用定义的正则表达式:
- Visa:
^4[0-9]{12}(?:[0-9]{3})?$
所有 Visa 卡号均以 . 开头4
。新卡有 16 位数字。老牌有13张。 - 万事达卡:所有万事达卡号码都以
^5[1-5][0-9]{14}$
数字开头。都有 16 位数字。51
55
- 美国运通:
^3[47][0-9]{13}$
美国运通卡号以34
或开头,37
有 15 位数字。 - Diners Club:
^3(?:0[0-5]|[68][0-9])[0-9]{11}$
Diners Club 卡号300
以305
或36
开头38
。都有 14 位数字。5
有以16 位数字开头的大来卡。这些是大来卡和万事达卡的合资企业,应该像万事达卡一样处理。 - 发现:
^6(?:011|5[0-9]{2})[0-9]{12}$
发现卡号以6011
或开头65
。都有 16 位数字。 - JCB: JCB 卡以或
有 15 位数字
^(?:2131|1800|35\d{3})\d{11}$
开头。以开头的 JCB 卡有 16 位数字。2131
1800
35
然后我们可以用 Luhn Mod-10 算法检查找到的数字,如果它满足条件,我们可以说我们找到了 CCN。
但是根据我的经验,这种简单的方法有很多误报/否定。
可以使用哪些算法或启发式方法来减少误报/误报匹配?PCI Data Finder 或 Card Recon 等高级软件提供了更可靠的结果,而这些结果绝对不是通过简单的正则表达式查找和 Luhn 检查来实现的。
ios - 解析 UniMag II 加密的滑动数据以获得 Track1 和 Track 2?
我正在使用 IDTech Shuttle 在我的 iOS 应用程序中刷卡数据,我需要将 Track1 和 Track2 作为单独的值发送到我的卡处理器。我已经研究过获取 track1 和 track2 数据,它看起来非常简单,除了我返回的滑动数据不遵循我所阅读的所有帖子所描述的相同格式。
我的滑动数据看起来像这样:
如何将其解析为 2 个单独的轨道?我假设这里有某种格式
encryption - 如何使用 3DES DUKPT 解密轨道数据
我正在使用一块使用 Triple Des DUKPT(ANSI 标准)加密数据的硬件。我可以访问 KSN 和加密的 track2 数据,我需要解密数据。有人可以通过提供 DUKPT C++ 代码/库来帮助我吗?
问候
用户1
magnetic-cards - 美国运通跟踪数据格式
我在跟踪数据处理方面遇到问题:
在各种 Amex 测试用例中标记为“ANSI”卡的各种 Amex 卡似乎不包含服务代码。没有迹象表明服务代码不包含在轨道数据中(这包括没有分隔符等)。您将如何确定跟踪中不包含服务代码并避免错误地将任意数据用作服务代码?
例子:
标准轨道: 374245455400001=131210112011234500000 – 服务代码为 101
没有服务代码的跟踪: 374245455400001=1412120112345 - 因此在这种情况下,120 被错误地解释为服务代码,而它构成了自主数据的一部分。
谢谢。
macos - Dynamag USB 读卡器在 OSX 中的键盘模式下运行缓慢
我的问题是关于在 OS X 下以键盘模式配置的信用卡读卡器。我注意到在 OS X 下运行的同一读卡器(我运行的是 10.9.4,但对于以前的版本也是如此)读出有关的刷卡数据Windows 7 的速度是 Mac 的两倍。例如,如果我使用 MagTek Dynamag 读卡器将卡片刷入 Mac 上的 Text Edit(或任何应用程序),则可能需要 4-5 秒才能完全输出曲目数据(曲目很长,因为它已加密)。如果我使用同一台计算机和阅读器使用我的 VMWare Fusion Windows 7 虚拟机运行相同的滑动,则滑动输出在大约一半的时间(2-3 秒)中以文本文件形式输出。即使运行虚拟机引入了任何开销,在 Windows 下输出速率仍然快得多。
我最初只是认为是阅读器速度慢,直到我在 Windows 中测试它。有谁知道是什么导致 Mac 上的输出速度变慢?它仅仅是一个设置还是更多涉及的东西(例如USB驱动程序)?谢谢你的帮助!
aggregation - 用于跟踪信用卡交易数据的 geezeo api 集成
当信用卡信息(卡号、到期日期和 cvc 号)是唯一可用的登录凭据时,我如何通过 geezeo api 跟踪特定信用卡的交易详细信息。我尝试过使用 yodlee api,但它需要在线银行帐户的用户名和密码作为登录凭据。
cobol - 使用 Cobol 格式化信用卡轨道 II 数据分隔符
我们有一个传统的 COBOL 程序,用于格式化 iso 8583 0100 授权请求。最近我们被告知第二轨数据由于分隔符而无效。轨道 II 数据位于 PIC X() 字段中,我们只需将 = 替换为字符 D,然后一次通过二进制固有 2 个字节运行数据。
我们被告知角色正在转换为他们身边的 4。我的问题是:我们应该使用什么字符来替换 = 字符?还是我们不理会 = 字符?
感谢您的任何指导。
intuit-partner-platform - 帐户聚合器/API - 提供信用卡账单到期日并允许跨方付款?
我知道有许多帐户聚合器允许企业访问客户的交易数据(Plaid、Yodlee、Intuit 客户帐户 API、向其他人开放......)。我想知道哪些允许或不允许:
- 确定客户信用卡余额的到期日。
- 跨账户和各方进行付款。
java - 3DES和DUKPT的Java实现,用于通过键盘仿真解密信用卡读卡器数据?
我们有一个在线键入界面,并且支持信用卡刷卡功能。在当今的行业中,读卡器应该在将信息编码为 ASCII 之前对其进行加密,然后由服务器端进行解密。(所以本地机器永远看不到卡信息)
我在键盘仿真模式下使用 MagTek 读卡器,并为测试目的注入了 ANSI 标准键。一旦解码和解密成功,我们将在 MagTek 注册我们自己的密钥并订购一些生产使用的阅读器。
我知道这种解密之前已经用 C# 和其他语言实现过,但需要 Java 中的一些东西,或者可能是 Java webapp 中可以包含的其他一些 CLI 可访问的程序。我将继续将一些 C# 代码移植到 Java,但首先需要设置 C# 环境。(我以前从未这样做过。)
一旦我确保 C# 版本运行良好,我就知道我可以使用我常用的调试技术消除移植过程中的任何错误。
在我完成所有这些之前,如果有更简单的方法,请告诉我。我认为这已经在 Java 中完成了,但也许不是......