Mifare access bits hex to binary covnersion

I am trying to understand the conversion of binary code into hex for access bits on mifare cards. Nxp has plenty of free pages on this but I'm obviously missing some under standing on how the values in the documents relate to what is programed into the card e.g Ff0708 converts to C1 c2 c3 which equals the binary value of 001
I'm sure I'm not giving enough info so ask and I will answer where I can
Who is Participating?
TommySzalapskiConnect With a Mentor Commented:
Most of what I'm using can be found on page 12 of this document

The order of the bits and bytes isn't quite lining up so I'm not sure if I have the right specification document, but yours is at least very similar.

The C1 C2 C3 that you are referring to are the sector trailer. The hex code you have posted is the entirety of the access bits. The are split into 4-bit pieces in the discussion. Half the code is the exact same as the other half except all the bits are inverted (0->1 and 1->0).

Ff0708 = 1111 1111 0000 0111 0000 1000
As you can see, 0111 is the inverse of 1000 as are 1111 and 0000

The C1, C2, and C3 are the highest order bits in their respective characters.
It appears that the 0000, 0000, and 1000 are the characters for C1C2C3. So since the first bits in each are 0, 0, and 1 then C1C2C3 = 001. The other bits mean other things.
I'm afraid I don't know anything about the card you are using and I really don't understand how the Hex you gave gets to 001. But the general rule for converting Hex to binary is the each Hex number is equivalent to 4 binary values:

i.e. F (Hex) = 1 1 1 1 (Bin) = 15 (Dec)
      1 (Hex) = 0 0 0 1 (Bin) = 1 (Dec)
      2 (Hex) = 0 0 1 0 (Bin) = 2 (Dec)
      4 (Hex) = 0 1 0 0 (Bin) = 4 (Dec)
      8 (Hex) = 1 0 0 0 (Bin) = 8 (Dec)
      A (Hex) = 1 0 1 0 (Bin) = 10 (Dec)

hope that helps
monitorwaAuthor Commented:
Thanks your advices got me through it, on the actualy Mifare 1 k classic which is the card concerned C1 - C3 actually have 4 values each e.g C1 (0-3) so C1(2) - C3(2) reltae to different blocks of the card. I used your method for the rest and it worked out OK

thanks again

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.