You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 00:05:26