Pergunta

Então, eu tenho sido capaz de ler alguns inseguro valores a partir de um oficial alemão de cartão inteligente.Ele funciona muito bem para Números e Cadeias de caracteres, mas eu não posso quebrar a minha cabeça em torno de como interpretar Datas.

A data que eu quero ler é especificado como 4 Bytes Data, como visto na especificação: http://imgur.com/3jU8k

Os quatro bytes que eu li são:

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

e deve representar esta data:20.02.2012 binário:

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

Outro:

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

deve representar:19.02.2017

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

Por favor me ajude a resolver este Codificação Enigma


Os dados do cartão pode ser lido por um software comercial, então eu acho que os dados brutos que eu recebo é usável em qualquer forma.

Para os interessados:O fornecedor tem um enorme especificação que eu procurei por várias vezes (http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:32002R1360:DE:NOT Disponível em vários Idiomas) A estrutura da carta é mencionado pela primeira vez na página 119

Foi útil?

Solução

Vinculado especificação diz que cardIssueDate é do tipo TimeReal (Seção 2.20.).A mesma especificação define TimeReal como o número de segundos desde a 1970-01-01 00:00:00 GMT (i.e. Tempo do UNIX) codificado como ASN.1 INTEIRO (Seção 2.110.).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top