如何使用APDU向智能卡发送PIN验证码-使用.NET
我能够连接到卡,现在我需要验证PIN,但我无法确定应该使用哪个代码来执行验证如何使用APDU向智能卡发送PIN验证码-使用.NET,.net,smartcard,asp.net-4.5,apdu,.net,Smartcard,Asp.net 4.5,Apdu,我能够连接到卡,现在我需要验证PIN,但我无法确定应该使用哪个代码来执行验证 // Verify PIN //HERE IS WHAT I´M NOT SURE WHAT TO USE - Just an Example byte[] pin = new byte[] { 0x31, 0x32, 0x33, 0x34, 0xFF, 0xFF, 0xFF, 0xFF }; APDUParam apduParam = new APDUParam(); apduParam.Data = pin; ap
// Verify PIN
//HERE IS WHAT I´M NOT SURE WHAT TO USE - Just an Example
byte[] pin = new byte[] { 0x31, 0x32, 0x33, 0x34, 0xFF, 0xFF, 0xFF, 0xFF };
APDUParam apduParam = new APDUParam();
apduParam.Data = pin;
apduVerifyCHV.Update(apduParam);
apduResp = iCard.Transmit(apduVerifyCHV);
这是一种使用7位PIN的智能卡。它总是7位数
**Example:**
{CLA, INS, P1, P2, Lc, b1, b2, b3, b4, b5, b6, b7}
这里有基本的CLA
,INS
,P1
,P2
,LC
字节。
我应该为7位的PIN设置+3字节还是6字节
且应为实际引脚或仅为0xFF值
Ex. {CLA, INS, P1, P2, Lc, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} +7 Bytes
在规范中,我找到了最小8位、最大8位、最小4位、最大12位字节的示例…这比我想象的要简单 当PIN使用带填充的ASCII格式转换时 输入的PIN码为1357(最小尺寸=4位,最大尺寸=8位)
- •左对齐
- •CCID的默认显示行为
- •CCID向ICC发送命令 课程编号P1 P2 Lc 31 33 35 FF FF FF FF
- •正确的理由。个人代码少于8位; 因此,必须指定八位代码的最高有效位 用零填充
- •框架在引脚前集成了一个特定的控制字段“01” 转换
- •没有消息
- •CCID向ICC发送命令 CLA INS P1 P2 Lc 01 00 01 35 79
0x00 0x20 0x00 0x01 0x08 0x30 0x31 0x34 0x37 0x34 0x31 0x30 0xFF
3-指填充物
3x-x指给定位置的实际管脚编号(左对齐)
因为我有一个7位的引脚,所以未使用的字节默认为0xFF
希望这对某些人有所帮助主机应用程序必须执行填充是很少见的,因为通常有效字符集不受限制,0xFF将是合法字符。此外,外部不一定知道最大长度。如果只允许数字,ISO 9564定义了一些变体。嗨,有谁能提供具有Verify PIN和Verify ADM命令的标准参考?它是ETSI还是ISO或3GPP?@Ac3\U DeXt3R ISO/IEC 7816-4。在170美元的付费墙后面。