Tomcat
Professional
- Messages
- 2,689
- Reaction score
- 913
- Points
- 113
Сообщения ISO-8583 кодируют теги EMV с использованием схемы BER-TLV в поле 55 сообщения. Официальное название схемы кодирования — Базовое правило кодирования ASN.1 (ISO 8825).
Термин TLV означает длину и значение тега (иногда также называемые типом , длиной и значением ). Для тегов EMV размер тега обычно составляет 2–4 байта; часть длины снова имеет размер 2-4 байта,
Некоторые примеры имен тегов EMV: 81, 9F02, 9F26, 4F и 5A. Полный список тегов и их описание вы можете найти на странице EMV Tags компании EMV Lab . Правила кодирования BER-TLV делят имя тега (иногда называемое типом тега) на следующие части: класс (2 бита), примитивный/сконструированный идентификатор (1 бит) и имя тега (5 бит, за которыми следуют 0 или более байтов).
Возьмем, к примеру, тег 9F26. В двоичном виде это эквивалентно байту1= 1001 1111, ибайт2= 0010 0110. Первые два бита равны 10, что указывает на то, что его класс является «контекстно-зависимым». Следующий бит равен 0, что указывает на то, что это примитивный тег. Следующие 5 бит первого байта равны 1, что указывает на то, что имя тега имеет «длинную форму» и нам нужно также просмотреть следующий байт. Все биты байта 2 составляют часть имени тега. Однако старший бит байта 2 (и всех последующих байтов) должен быть включен, если в имя тега включено больше байтов. В нашем случае 9F26 — это всего два байта; следовательно, у второго байта первый бит отключен.
Термин «созданный» в контексте кодирования BER-TLV означает, что значение тега представляет собой набор самих тегов EMV; т. е. тег имеет рекурсивную структуру кодирования BER-TLV. Давайте воспользуемся тегом 71 в качестве примера.
Шестнадцатеричное значение 71 представлено как 0111 0001 в двоичном формате. Первые два бита — 01, что указывает на то, что он имеет класс «Приложение». Третий бит 1 указывает, что значение тега представляет собой набор тегов EMV. Остальные биты 10001 указывают фактический идентификатор тега.
Теперь одним из допустимых значений тега 71 будет «9F06021234», т. е. значением тега 71 является тег 9F06 вместе с его длиной и содержимым. Однако значение «1234» будет неправильным, поскольку «1234» не является действительными данными BER-TLV.
Термин TLV означает длину и значение тега (иногда также называемые типом , длиной и значением ). Для тегов EMV размер тега обычно составляет 2–4 байта; часть длины снова имеет размер 2-4 байта,
Допустимые имена тегов EMV
Некоторые примеры имен тегов EMV: 81, 9F02, 9F26, 4F и 5A. Полный список тегов и их описание вы можете найти на странице EMV Tags компании EMV Lab . Правила кодирования BER-TLV делят имя тега (иногда называемое типом тега) на следующие части: класс (2 бита), примитивный/сконструированный идентификатор (1 бит) и имя тега (5 бит, за которыми следуют 0 или более байтов).
Возьмем, к примеру, тег 9F26. В двоичном виде это эквивалентно байту1= 1001 1111, ибайт2= 0010 0110. Первые два бита равны 10, что указывает на то, что его класс является «контекстно-зависимым». Следующий бит равен 0, что указывает на то, что это примитивный тег. Следующие 5 бит первого байта равны 1, что указывает на то, что имя тега имеет «длинную форму» и нам нужно также просмотреть следующий байт. Все биты байта 2 составляют часть имени тега. Однако старший бит байта 2 (и всех последующих байтов) должен быть включен, если в имя тега включено больше байтов. В нашем случае 9F26 — это всего два байта; следовательно, у второго байта первый бит отключен.
Созданные теги EMV
Термин «созданный» в контексте кодирования BER-TLV означает, что значение тега представляет собой набор самих тегов EMV; т. е. тег имеет рекурсивную структуру кодирования BER-TLV. Давайте воспользуемся тегом 71 в качестве примера.
Шестнадцатеричное значение 71 представлено как 0111 0001 в двоичном формате. Первые два бита — 01, что указывает на то, что он имеет класс «Приложение». Третий бит 1 указывает, что значение тега представляет собой набор тегов EMV. Остальные биты 10001 указывают фактический идентификатор тега.
Теперь одним из допустимых значений тега 71 будет «9F06021234», т. е. значением тега 71 является тег 9F06 вместе с его длиной и содержимым. Однако значение «1234» будет неправильным, поскольку «1234» не является действительными данными BER-TLV.