需要帮助来了解C#中的MiFare身份验证

时间:2019-10-24 19:03:35

标签: c# authentication mifare

我正在尝试编写一个C#Winforms应用程序,以使用ACR122读卡器对MiFare 1K智能卡进行编程。我坚持了解身份验证。 我有一些示例代码,我不理解它是如何工作的。 我的问题是: 1)是否有多​​个认证级别?通用身份验证和扇区级别身份验证? 2)如何确定某个扇区是否具有出厂默认值FF FF FF FF FF FF FF,或者是否已将其修改为其他值? 3)下面的代码似乎有效,但是我看不到任何地方包含密钥。有人可以向我解释它的工作原理吗? 4)该命令将如何修改KeyA,然后使用修改后的密钥访问块?

我一直在阅读此文档,但无法找出解决方案: https://www.nxp.com/docs/en/data-sheet/MF1S70YYX_V1.pdf

private bool authenticateBlock(String block)
{
ClearBuffers();
SendBuff[0] = 0xFF;
SendBuff[1] = 0x86;
SendBuff[2] = 0x00;
SendBuff[3] = 0x00;
SendBuff[4] = 0x05;
SendBuff[5] = 0x01;
SendBuff[6] = 0x00;
SendBuff[7] = (byte)int.Parse(block);
SendBuff[8] = 0x60;
SendBuff[9] = (byte)int.Parse("1");

SendLen = 0x0A;
RecvLen = 0x02;

retCode = SendAPDUandDisplay(0);

if (retCode != Card.SCARD_S_SUCCESS)
{
   MessageBox.Show("FAIL Authentication!");
   return false;
}
return true;
}

0 个答案:

没有答案