Beste Forum gebruikers,
Afgelopen periode ben ik over gestapt van een mifare classic chip naar een desfire chip. Beide kaarten zijn blanco zonder enige beveiligingen erop. Nu wil ik via een 13.56MHz scanner de code eruit halen maar zie dat deze van 8 tekens (classic) naar 16 tekens (desfire) is gegaan.
In de oude situatie kreeg ik van een hex code : D450A27A. De uitkomst in dec code: 3562054266. Deze is dus te verklaren, maar bij die van Desfire niet. In de nieuwe situatie krijg ik te zien als hex code: 80748A3A656D04 en bij het scannen geeft hij de code 21551212101701643400. Dit hoort te zijn 36156934052998404 maar krijg dat dus niet zichtbaar.
Heeft iemand hier ervaring mee of weet wat er mis kan zijn?
Alvast bedankt,
Luc
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Zit daar geen checksum bij inbegrepen die je eraf moet laten?
Ik heb desfire nooit gebruikt, maar wanneer krijg je die hexcode en wanneer de decimale?
marcob
Honourable Member
People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
Een Mifare Classic Chip Serienummer is inderdaad 32 bits. Een Mifare DESfire Chip Serie nummer is 56 bits. Maar volgens mij kan in een lezer zelf ingesteld worden dat tot 64 bits gelezen moet worden. (afhankelijk van merk)
Maar zoals Arco vraagt, ik begrijp ook niet wat je nu precies wat wanneer leest.
Let ook op voor de toekomst, in de DESFire chip is het mogelijk om het Chip Serienummer bij elke keer lezen random te maken.
[Bericht gewijzigd door marcob op (22%)]
Goedenavond,
Bedankt voor jullie reacties. We gebruiken een elatec scanner https://www.nfc-nederland-shop.nl/nfc-reader-writer-ble.html.
Met deze scanner kan ik een hex getal eruit halen. Deze getallen zet ik direct in excel en vervorm ze vervolgens naar een dec getal. Dit dec getal zet ik dan in een urenregistratiesysteem genaamt Utime. Utime leest namelijk alleen dec getallen.
Dit was dus geen probleem tot ik ben overgestapt van classic passen naar desfire passen. wanneer ik daarvan het Hex getal omvrom naar een dec getal krijg ik een andere uitkomst.
marcob
Honourable Member
People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
Ik denk dat je het eerst moet zoeken bij het uren registratie systeem. Weet je zeker dat dat systeem om kan gaan met het 56 bits serienummer?
Beide nummers als binair uitgeschreven, er is ook geen enkele overeenkomst. Meestal zie je wel dat er bits voor of achter worden gezet (of weggehaald)
Dat zou je verwachten als de ene lezer meer of minder bits leest als de andere.
36156934052998404:
10000000011101001000101000111010011001010110110100000100
21551212101701643400:
10010101100010101010010010011100100101001000001101010110010001000
Ik moet nu weg dus ik zal dit alsvast posten.
Ik heb hem op 4 tellen na... Het getal is te groot voor excel:
LEFT6 80748A Dec= 8418442
4BYTES Dec= 4294967296
RIGHT8 3A656D04 Dec= 979725572
Totaal = LEFT8*4Bytes+RIGHT8 Dec= 36156934052998400,0
Dus met LEFT(cell,6) en RIGHT(cell,8) hak ik het op in stukjes en dan maak ik nog een denkfoutje maar zit aardig in de buurt.
80748A3Ahex = 2155121210dec
je hebt helemaal gelijk, zie nu idd logica vannuit de laatste getallen na 2155121210dec welke ik terug kreeg. Nu ik 21551212101145635976 (onderstreept) omvorm naar HEX krijg ik 44490488. De HEX is in zijn geheel 80748A3A444904 dus 80748A3A en 44490488 bij elkaar 80748A3A44490488. Hij klopt dan dus behalve de laatste 2 cijfer (te veel)
die kan ik nog niet plaatsen
Je zegt je bent van 8 naar 16 tekens gegaan, maar toch laat je maar 14tekens/7 bytes zien:
80 74 8A 3A 65 6D 04
1 2 3 4 5 6 7 bytesHoi K7Jz,
Excuus voor mijn late reactie.
Hier heb je gelijk in, ik mis ook bij de scans die ik ontvang enkele gegevens.
Wanneer ik je theorie gebruik krijg ik "88" te veel te zien achter elke code.
Hij lijkt dus geen 8 bytes te lezen maar 7 elke keer
Mogelijk een beter voorbeeld:
Dit is de code welke ik uit de scanner krijg (desktop RFID scanner):
80748A3A238404 (ISO14443A | UID Length 56 Bits | UID HEX 0484233A8A7480)
De code welke ik uit de Utime klok krijg is (deze code moet ik hebben):
21551212100595854472
Je had hem bijna gevonden met het opsplitsen van de code. Dit is het eerste stuk:
80748A3Ahex = 2155121210dec
Het laaste stuk klopt alleen niet:
238404hex = 2327556dec
Je krijg dan de code:
21551212102327556
Maar als ik hem andersom ga benaderen vanuit de Utime scanner krijg ik het volgende uit het eerste gedeelte:
2155121210dec = 80748A3Ahex
en uit het 2de stuk:
0595854472dec = 23840488hex
Het vreemde is dat hij er dan 88 achter plaatst.
De meeste van dit soort systemen kijken puur naar de UID van de kaart
zo te zien is de oude kaart een 4-byte UID en die Desfire een 7-byte UID
idealiter moet je dus iets vinden om die 2 uit elkaar te houden.
maak je nu op dat mijn dektop RFID scanner een 4b lezer zou zijn?
weet je ook of er een mogelijkheid is dat de 7b lezer als 4b lezer te gebruiken? of het mogelijk is met excel is om te zetten?