首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在开发Javacard Applet时访问智能卡读取器的Pinpad

如何在开发Javacard Applet时访问智能卡读取器的Pinpad
EN

Stack Overflow用户
提问于 2021-10-21 10:05:27
回答 1查看 45关注 0票数 0

我是Javacard的新手,我正在开发我自己的Javacard Applet,到目前为止,它工作得很好。我还写了一个主机程序来与我的卡通信(通过APDU),这个程序是用Java编写的,使用javax.smartcardio库以及apdu4j。

我现在的目标是使用我的阅读器的集成PIN来要求用户输入PIN,然后将输入的PIN转发到智能卡,智能卡将验证PIN。我已经在卡上写了验证个人识别码的代码(CLA: 0x80,INS: 0x04,P1: 0x00,P2: 0x00,个人识别码数据),但我不知道如何告诉读卡器探测个人识别码,然后将此信息转发到卡。

我的读卡器是恩智浦的J3H145 (Javacard 3.0.4 / ISO7816 / ISO14443),我的读卡器是ReinerSCT cyberJack射频识别标准。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-12 10:47:58

如果有人想知道,我已经知道怎么做了。

代码语言:javascript
运行
复制
public static byte[] verifyPin(Card card) throws CardException {
    byte[] command = new byte[]{
            0x00, //Timeout
            0x00, //Timeout
            0x00, //Format
            0x0f, //PIN Block
            0x00, //PIN length format
            0x04, //Max PIN size
            0x04, //Min PIN size
            0x02, //Entry validation condition (02 = press OK)
            0x01, //Number of messages
            0x04, //Language
            0x09, //Language
            0x00, //Message index
            0x00, //TeoPrologue
            0x00, 0x00,
            0x04, 0x00, 0x00, 0x00, //APDU length
            (byte) CLA, INS_VERIFY_PIN, 0x00, 0x00};
    return card.transmitControlCommand(CONTROL_CODE_VERIFY, command);
}

这是使用javax.smartcardio验证个人识别码的java代码。您可以阅读有关命令data here的详细信息。CLA和INS_VERIFY_PIN是个人识别码数据(您的小程序)的理想目标。您可以使用以下代码获取CONTROL_CODE_VERIFY:

代码语言:javascript
运行
复制
public static void parseControlCodes(Card card) throws CardException {
    int CONTROL_CODE_GET_FEATURES = SCard.CARD_CTL_CODE(3400);
    byte[] res = card.transmitControlCommand(CONTROL_CODE_GET_FEATURES, new byte[0]);
    for(int i = 0; i < res.length; i++){
        if(res[i] == 0x06){
            CONTROL_CODE_VERIFY = ByteBuffer.wrap(res, i+2, 4).getInt();
        }
        
    }
}

Scard.CARD_CTL_CODE是apdu4j的一种方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69659941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档