使用C#与PCSC Sharp实现ACR122U认证NTAG215遇问题求助
NTAG215卡片认证异常问题
- 设备:ACR122U读卡器、多张NTAG215卡
- 开发环境:C# + PCSC Sharp
- 配置说明:已为卡片设置密码,默认密钥为
00 00 00 00或FF FF FF FF,PACK为00 00;将AUTH0从FFh修改为40h,使64~132页处于密码保护状态 - 异常现象:认证64页时出现问题,执行代码后得到响应
SW1 : 90 , SW2 : 00,返回数据为D5 43 01,未获取到预期的PACK
我的代码如下:
using (var ctx = ContextFactory.Instance.Establish(SCardScope.System)) { using (var isoReader = new IsoReader(ctx, connReader, SCardShareMode.Shared, SCardProtocol.Any, false)) { string defaultKey = "FF FF FF FF"; string[] key = defaultKey.Split(" "); byte[] load_keys = new byte[4]; int count = 0; for (int i = key.Length - 1; i >= 0; i--) { load_keys[count] = Convert.ToByte(key[i], 16); count++; } //0x1B, load_keys[0], load_keys[1], load_keys[2], load_keys[3] byte[] auth = { 0xD4, 0x42, 0x1B, load_keys[0], load_keys[1], load_keys[2], load_keys[3] }; var read = new CommandApdu(IsoCase.Case4Short, isoReader.ActiveProtocol) { CLA = 0xFF, INS = 0x00, P1 = 0x00, P2 = 0x00, Le = 0x07, Data = auth }; var rsp_read = isoReader.Transmit(read); txtLog.Text += $"Authenticate Response ( SW1 : {Convert.ToString(rsp_read.SW1, 16).PadLeft(2, '0').ToUpper()} , SW2 : {Convert.ToString(rsp_read.SW2, 16).PadLeft(2, '0').ToUpper()} )" + br; var data_read = rsp_read.GetData(); for (int i = 0; i < data_read.Length; i++) { txtAuth.Text += Convert.ToString(data_read[i], 16).PadLeft(2, '0').ToUpper() + " "; } } }
已查阅两篇关于NTAG系列卡片认证的文章,但未找到解决方案,恳请帮助排查问题。
内容的提问来源于stack exchange,提问作者Han
相关产品推荐
相关产品推荐

