2016-04-20 13 views
0

Ich arbeite an einer POS-Anwendung, die EMV-Karten unterstützt. Ich kann Kartendaten von einem Verifone MX-Kartenleser in TLV lesen, habe aber Probleme beim Decodieren der TLV-Daten in lesbare Daten.Entschlüsselung EMV TLV Daten

Ich bin in der Lage, die Daten in TLV-Tags und seine Werte zu teilen. Der resultierende Wert ist Hexadezimal anstelle von Dekodiertem Text.

Beispiel:

Dies ist ein Beispiel TLV-Daten (Ich habe diese Probe TLV Daten here

6F2F840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A564953412044454249548701019000 

Wenn ich diese TLV Check-in TLVUtil, erhalte ich Daten in bestimmten Tags in lesbarem Format (wie . Tag 50 hier)

Die nächstgelegene ich in meiner Anwendung kommen könnte, ist dies:

Tag Value 
50 56495341204445424954 
4F A0000000031010 
61 4F07A0000000031010500A56495341204445424954870101 
6F 840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A56495341204445424954870101 
84 325041592E5359532E4444463031 
87 1 
90 
A5 BF0C1A61184F07A0000000031010500A56495341204445424954870101 
BF0C 61184F07A0000000031010500A56495341204445424954870101 

Ich würde gerne wissen, ob es eine Möglichkeit gibt, bestimmte Tags zu identifizieren, die von Hex zu String konvertiert werden müssen, oder ob TLV Parser und Decoder in .Net zur Verfügung stehen, die das TLVUtil Tool replizieren können.

+0

Sind Sie sicher, dass Ihre Daten nicht verschlüsselt Track1? Wenn Sie beispielsweise eine Karte wie 4186 0000 0000 1234 ausführen, können Sie diese Nummer in den Daten finden? Wenn nicht, ist die Nutzlast wahrscheinlich verschlüsselt, und die Daten werden nicht gut analysiert. – tgolisch

+0

Neben der Kartennummer gibt der Leser weitere Informationen wie Name des Karteninhabers, Bank des Herausgebers usw. zurück. Diese Informationen werden in Hex-Code zurückgegeben. Ich möchte diese Tags identifizieren und selektiv konvertieren. – Rahul

Antwort

1

Es gibt nur wenige Tags, die in eine Zeichenfolge konvertiert werden müssen. Im Allgemeinen werden Tags, die auf dem POS-Bildschirm platziert werden, in Hexadezimaläquivalenten der lesbaren Zeichenfolge personalisiert.

  • 5F20: Name des Karteninhabers

  • : Anwendung Etikett.

  • 5F2D: Spracheinstellung

Sie müssen wissen, welche Tags umgewandelt werden können.

+0

Ja, mir sind wenige Tags bekannt, die dekodiert werden müssen. Könnten Sie bitte die Liste solcher Tags gefallen? Außerdem würde ich gerne wissen, ob es einen Weg gibt, pragmatisch die Tags zu identifizieren, die konvertiert werden müssen, anstatt die Tags hart zu codieren. – Rahul

+1

Es gibt keine Möglichkeit, diese Tags zu identifizieren. Sie müssen diese Tags fest codieren. Ich habe keine solche Liste. –

5
Complete list of EMV tags and are available in EMVCo 4.3 specification book 3 - 
you can download from here - https://www.emvco.com/download_agreement.aspx?id=654 
How data is represented differs from field to field. Check Annex A 
Data Elements Dictionary 


Details on encoding is mentioned in section 4.3 

Read both the sections and your problem solved. 
0

Wie es mir scheint, programmatisch können Sie so etwas wie, identifizieren

Tag ist von einem Byte (5A - Pan-Nummer) oder es enthält 2 Byte (5F20 - KARTENINHABER NAME) und

Länge ist von 1 Byte oder 2 Byte UND

Tag ist primitiv oder konstruiert. Mehr können Sie lesen Here

und wenn Sie die Liste kennen, können Sie etwas nützliches bekommen Here, definieren Sie das Format des Tags, das Sie suchen.

Hier können Sie das Format fest codieren, wie es gut definiert ist.

Ich hoffe, es hilft.

0

Diese Daten beginnen mit 6F ist ein File Control Information (FCI) reagiert mit einer EMV-Karte nach SELECT-Befehl. Es gibt ein Beispiel in diesem Video auch entschlüsselt und erläutert. https://youtu.be/iWg8EBhsfjY

Es ist einfach, check it out