問題タブ [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 です。 - MasterCard:
^5[1-5][0-9]{14}$
すべての MasterCard 番号は から までの数字で始まり51
ます55
。全部で16桁です。 - American Express: American Express カードの番号は、またはで
^3[47][0-9]{13}$
始まり、15 桁です。34
37
- ダイナース クラブ:ダイナース クラブのカード番号は、 ~、または
^3(?:0[0-5]|[68][0-9])[0-9]{11}$
で始まります。全部で14桁です。で始まる16 桁のダイナース クラブ カードがあります。これらは Diners Club と MasterCard の共同事業であり、MasterCard のように処理する必要があります。300
305
36
38
5
- Discover: Discover カードの番号はまたは
^6(?:011|5[0-9]{2})[0-9]{12}$
で始まります。全部で16桁です。6011
65
- JCB:
^(?:2131|1800|35\d{3})\d{11}$
で始まる JCB カードは 15 桁です2131
。1800
で始まるJCBカード35
は16桁です。
次に、見つかった数を Luhn Mod-10 アルゴリズムで確認し、条件を満たしていれば、CCN を見つけたと言えます。
しかし、この単純な方法には、私の経験から非常に多くの誤検出/誤検出があります。
偽陽性/陰性の一致を減らすために、どのアルゴリズムまたはヒューリスティックを使用できますか? PCI Data Finder や Card Recon などの高度なソフトウェアは、より信頼性の高い結果を提供していますが、その結果は単純な正規表現の検索や Luhn チェックでは得られません。
encryption - 3DES DUKPT を使用してトラック データを復号化する方法
Triple Des DUKPT (ANSI 標準) を使用してデータを暗号化するハードウェアを使用しています。KSN と暗号化された track2 データにアクセスできます。データを復号化する必要があります。DUKPT C++ コード/ライブラリを提供してくれる人はいますか?
よろしく
ユーザー1
magnetic-cards - Amex トラック データ形式
トラック データの処理に問題があります。
さまざまな Amex テスト ケース内で「ANSI」カードとラベル付けされているさまざまな Amex カードには、サービス コードが含まれていないようです。サービスコードがトラックデータに含まれていないことを示すものはありません (これにはセパレーターなどは含まれません)。トラックにサービス コードが含まれていないと判断し、任意のデータをサービス コードとして誤って使用しないようにするにはどうすればよいでしょうか?
例:
標準トラック: 374245455400001=131210112011234500000 – サービスコードは 101
サービス コードなしの追跡: 374245455400001=1412120112345 - したがって、この場合、120 はサービス コードとして誤って解釈されますが、任意データの一部を形成します。
ありがとう。
macos - OSX のキーボードモードで Dynamag USB カードリーダーが遅い
私の質問は、OS X のキーボード モードで構成されたクレジット カード リーダーに関するものです。 Windows 7 では、Mac の 2 倍の速さです。たとえば、MagTek Dynamag リーダーを使用してカードを Mac のテキスト編集 (または任意のアプリ) にスワイプすると、トラック データを完全に出力するのに 4 ~ 5 秒かかります (トラックは暗号化されているため、かなり長いです)。 )。VMWare Fusion Windows 7 仮想マシンを使用して、同じコンピューターとリーダーを使用して同じスワイプを実行すると、スワイプは約半分の時間 (2 ~ 3 秒) でテキスト ファイルに出力されます。仮想マシンを実行することによってどのようなオーバーヘッドが発生しても、出力速度は Windows ではるかに高速です。
Windowsでテストするまで、最初はリーダーが遅いと思っていました。Mac で出力速度が遅い原因を知っている人はいますか? それは単なる設定ですか、それとももっと複雑なもの (USB ドライバなど) ですか? 助けてくれてありがとう!
aggregation - クレジットカードからの取引データを追跡するgeezeo API統合
利用可能なログイン資格情報がクレジット カード情報 (カード番号、有効期限、cvc 番号) のみの場合、geezeo api を介して特定のクレジット カードから行われたトランザクションの詳細を追跡するにはどうすればよいですか。Ive で yodlee api を試してみましたが、ログイン資格情報としてオンライン銀行口座のユーザー名とパスワードが必要です。
cobol - Cobol を使用したクレジット カード トラック II データ セパレータのフォーマット
iso 8583 0100 認証要求をフォーマットする従来の COBOL プログラムがあります。最近、セパレータが原因でトラック II のデータが無効であると言われました。トラック II のデータは PIC X() フィールドにあり、一度に 2 バイトずつバイナリ固有のデータを実行する前に、= を文字 D に置き換えるだけです。
キャラクターは自分の側で 4 に変換されていると言われています。私の質問は、= 文字を置き換えるためにどの文字を使用する必要があるかということです。それとも = 文字をそのままにしておきますか?
ご指導ありがとうございます。