Question

J'ai donc pu lire des valeurs non sécurisées sur une carte à puce allemande officielle.Cela fonctionne bien pour les nombres et les chaînes, mais je n'arrive pas à comprendre comment interpréter les dates.

La date que je veux lire est spécifiée comme date de 4 octets, comme indiqué dans la spécification : http://imgur.com/3jU8k

Les quatre octets que j'ai lus sont :

0x4f 0x41 0x8d 0x00 (hex)
0100 1111 0100 0001 1000 1101 0000 0000 (binary)

et doit représenter cette date :20.02.2012 binaire:

20 - 0001 0100
02 - 0000 0010
2012 - 0111 1101 1100

Un autre:

0x58 0xAA 0x31 0x7f (hex)
0101 1000 1010 1010 0011 0001 0111 1111 (binary)

doit représenter :19.02.2017

19 - 0001 0011
02 - 0010
2017 - 0111 1110 0001

S'il vous plaît, aidez-moi à résoudre cette énigme d'encodage


Les données de la carte peuvent être lues par un logiciel commercial, donc je suppose que les données brutes que j'obtiens sont utilisables de quelque manière que ce soit.

Pour les intéressés :Le fournisseur a une spécification très énorme que j’ai recherchée de nombreuses fois (http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:32002R1360:DE:NOT Disponible en plusieurs langues) La structure de la carte est mentionnée pour la première fois à la page 119

Était-ce utile?

La solution

La spécification liée dit que cardIssueDate est du type TimeReal (Section 2.20.).La même spécification définit TimeReal comme le nombre de secondes depuis le 01/01/1970 00:00:00 GMT (c'est-à-dire Heure UNIX) codé comme ASN.1 ENTIER (Section 2.110.).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top