Определить эмитента EMV-карты - PullRequest
0 голосов
/ 20 июня 2020

Как лучше всего определить эмитента бесконтактной EMV-карты. Я пытаюсь определить, была ли карта выпущена Amex, Visa или Mastercard. Доступна ли эта информация через USB-считыватель EMV? Мне не нужно извлекать какую-либо другую информацию с карты ..

Я предполагаю, что это может быть сделано каким-то кодом python или C ++, взаимодействующим с картой. Я ищу хорошую отправную точку.

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Вы должны получить эту информацию из успешного ответа SELECT. Сохраните список RID (AID = RID + PIX) и выполните SELECT один за другим. В случае успеха он вернет байты состояния 90 00, в противном случае 6A 82 (файл не найден).

0 голосов
/ 23 июля 2020

Самый простой вариант - использовать команду SELECT , как упоминалось ранее. Список AID:

https://www.eftlab.com/knowledge-base/211-emv-aid-rid-pix/

Другой вариант - получить его из PAN . Вы можете определить эмитента на основе первых 6 или 8 цифр номера PAN, который представляет собой идентификационный номер эмитента (IIN) / банковский идентификационный номер (BIN).

  • 34, 37 - американский Express
  • 4 - Visa
  • 51-55, 2221-2720 - MasterCard

https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_ (ИИН) Вам нужно будет отправлять команды :

  1. ВЫБРАТЬ
  2. ПОЛУЧИТЬ ОПЦИИ ОБРАБОТКИ
  3. ПРОЧИТАТЬ ЗАПИСЬ

Вы должны искать 5A - PAN и извлекать первые цифры.

Хороший инструмент, который вы можете просто использовать для чтения данных с бесконтактной карты EMV: https://www.javacardos.com/tools/pyresman

Вы можете создать свои собственные сценарии или просто продолжить basi c команды, такие как команда SELECT.

...