Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Mifare access bits hex to binary covnersion

Posted on 2011-02-14
Medium Priority
2,975 Views
Hi,
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
Thanks
0
Question by:monitorwa
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points

LVL 3

Expert Comment

ID: 34887208
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
0

LVL 37

Accepted Solution

TommySzalapski earned 2000 total points
ID: 34890071
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.
0

Author Closing Comment

ID: 34902714
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

Dave
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Complex Numbers are funny things.  Many people have a basic understanding of them, some a more advanced.  The confusion usually arises when that pesky i (or j for Electrical Engineers) appears and understanding the meaning of a square root of a nega…
When we purchase storage, we typically are advertised storage of 500GB, 1TB, 2TB and so on. However, when you actually install it into your computer, your 500GB HDD will actually show up as 465GB. Why? It has to do with the way people and computers…
This is a video describing the growing solar energy use in Utah. This is a topic that greatly interests me and so I decided to produce a video about it.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
###### Suggested Courses
Course of the Month7 days, 21 hours left to enroll