gpt4 book ai didi

nfc - 无法验证 NTAG213

转载 作者:行者123 更新时间:2023-12-03 04:18:39 26 4
gpt4 key购买 nike

我正在使用 ACR122U NFC 读取器来密码保护 NTAG213 NFC 标签。我想我已经成功地设置了正确的密码,但之后我无法验证和更改标签。我的身份验证代码如下所示:

#include <winscard.h>
#include <iostream>
#pragma comment(lib, "winscard.lib")

const char *ReaderName = "ACS ACR122 0";
unsigned Password = 0x12345678;

int main()
{
//Establish context
SCARDCONTEXT hContext;
DWORD SCard_Status1 = SCardEstablishContext(SCARD_SCOPE_USER, NULL, NULL, &hContext);
if(SCard_Status1 != SCARD_S_SUCCESS)
return 1;

//connect to the card
SCARDHANDLE hCardHandle;
DWORD Protocol;
DWORD SCard_Status2 = SCardConnect(hContext, ReaderName, SCARD_SHARE_SHARED, SCARD_PROTOCOL_T1, &hCardHandle, &Protocol);
if(SCard_Status2 != SCARD_S_SUCCESS)
{
SCardReleaseContext(hContext);
return 1;
}

SCARD_IO_REQUEST Request;
Request.dwProtocol = Protocol;
Request.cbPciLength = sizeof(SCARD_IO_REQUEST);
BYTE TxData[] =
{
0xFF, //CLA
0x00, //INS
0x00, //P1
0x00, //P2
0x08, //LC
0xD4,
0x40,
0x01,
0x1B, //PWD_AUTH (See data sheet)
Password,
Password >> 8,
Password >> 16,
Password >> 24,
};

BYTE RxData[254];
unsigned long RxLength = sizeof(RxData);
DWORD SCard_Status3 = SCardTransmit(hCardHandle, &Request, TxData, sizeof(TxData), NULL, RxData, &RxLength);
std::cout << "SCard_Status = " << SCard_Status3 << std::endl;
std::cout << "RxLength = " << RxLength << std::endl;

SCardDisconnect(hCardHandle, SCARD_EJECT_CARD);
SCardReleaseContext(hContext);
return 0;
}

这应该将 PWD_AUTH 命令与 Pwd 一起发送到 NTAG213。如果密码错误,我预计会收到错误;如果密码正确,我预计会收到 PACK 的两个字节。但 SCard_Status 为 SCARD_S_SUCCESS 并且 RxLength 之后为 0。如果我尝试写入标签,则会出现错误。

我无法找到任何说明如何执行此操作的示例。谁能看出我做错了什么吗?

最佳答案

我自己来回答这个问题。我设法通过将 TxData 更改为:

BYTE TxData[] =
{
0xFF, //CLA
0x00, //INS
0x00, //P1
0x00, //P2
0x07, //LC
0xD4, 0x42, //InCommunicateThru
0x1B, //PWD_AUTH (See data sheet)
Password,
Password >> 8,
Password >> 16,
Password >> 24,
};

我在 PN532 的数据表中发现命令 InCommunicateThru (D4 42) 作为 InDataExchange (D4 40) 的替代品,PN532 是 ACR122U 内部的 NFC 处理器。

关于nfc - 无法验证 NTAG213,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25958889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com