我正在尝试使用c#验证和更改金雅拓.net卡的pin。但当我试着核实的时候,用的是-
byte cla_verify = 0;
byte p2_pinReference = 0x80;
CardCommandAPDU quickVerify = new CardCommandAPDU(cla_verify, 0x20, 0x00, p2_pinReference, CardHex.ToByteArray("FFFFFFFFFFFFFFFF"));
CardResponseAPDU aRespAPDU = aCard.SendCommand(quickVerify);它正在返回-SW 27033 (RSP 6999)。
任何想法。我做错了什么?
发布于 2013-05-31 02:29:43
状态字69XX表示:不允许命令。
我已经研究了NET Smartcard Framework SDK内部提供的NETSmartcardFramework.chm。不知道要使用什么CLA、INS、P1、dan P2和Lc。相反,PIN验证已经包装到PIN类中。
要验证PIN值,您可以使用
// PIN Class members
// PIN.Verify Method
public void Verify(byte[],int,int);
public void Verify(string);但在此之前,您需要使用构造函数PIN(byte[],int,int,int)或PIN(string,int)初始化个人识别码,并检查个人识别码是否为isBlocked()或isVerified()。
一些有趣的文章和指南:
发布于 2013-05-31 14:44:20
请注意,虽然您的个人识别码引用声明了一个特定的引用,但来自P2的标识符0表示:“卡片应知道所寻址的个人识别码”。这可能需要额外的先前发送的命令,如设置模式中的管理安全ENvironment,或某个安全环境对象或类似对象。特别是对于下面的更改参考数据,我建议显式地声明ID。
发布于 2016-03-18 14:00:12
引脚验证在here中进行了说明。您可以尝试此代码,而不是您的代码。我觉得挺不错的。
https://stackoverflow.com/questions/16832327
复制相似问题