Search code examples
hexuniqueidentifierrfidmifareserial-number

Get hex string of stored mifare tags


I have to import a list of badge codes for a customer from an old software to the new one. Codes refer to 125Khz readonly rfid badges (most likely, not 100% shure about that).

If I read a given badge, the resulting hex string in the new software is "27000052B4", but in the old it is stored as "30 30 30 30 30 32 31 31 37 32 0D 0A".

I can't understand the transformation applied, and how to obtain "my" code from the stored one.

It's possible that some kind of "encryption" has been applied to the code, or that the stored code it's not the actual mifare tag uid but some other kind of value stored in memory, but I would like to ask if anyone can guess how to, if possibile at all, get the "normal" hex codes from the old values.

As a reference, I paste here a couple of old/new pairs:

badge n. 27000052B4, stored as: 30 30 30 30 30 32 31 31 37 32 0D 0A

badge n. 5B006E82AA, stored as: 30 30 30 37 32 34 32 34 31 30 0D 0A

To recap, I need to obtain the badge number in hex string starting from the stored value, in order to be able to recognize the badge/customer when i read it with the new software.

As an additional note, the trailing part "0D 0A" seems to be just a CRLF and it's the same for all the stored badges.


Solution

  • I'm not sure about the first 2 digits of the badge number, but the stored value is a US-ASCII encoded string that contains the decimal representation of the trailing 4(?) bytes of the badge number (and a carriage return + line feed):

    30 30 30 30 30 32 31 31 37 32 0D 0A
    

    is the string

    "0000021172\r\n"
    

    21172 in decimal is 0x52B4 in hexadecimal (i.e. the last part of 27000052B4). Similarly, 7242410 in decimal is 0x6E82AA in hexadecimal (i.e. the last part of 5B006E82AA).