如何获得CardHolder名称

时间:2016-07-13 19:19:27

标签: java android emv

我正在尝试读取智能卡,并且我能够从智能卡中获取一些数据。我现在面临的问题是如何从智能卡中获取CardHolder名称。

我有

if(emv_is_tag_present(0x5F20) >=0){
                                tagDataLength = emv_get_tag_data(0x5F20, tagData, tagData.length);
                                if(debug)Log.d(APP_TAG, "Carder "+ tagDataLength);
                                appState.trans.setuserName(StringUtil.toString(AppUtil.removeTailF(ByteUtil.bcdToAscii(tagData,0, tagDataLength))));
                            }

我真的不知道在尝试使用 5F20持卡人姓名时从卡中获取此字段时使用的格式表示根据ISO 7813卡和2-26'70'或'77'的持卡人姓名2 26我从here

得到的原始

这是我得到的输出3030303030333830D160222101 ..但是,每当我尝试将其转换为字符串......它会返回00000380Ñ`“!这实际上不是持卡人的名字。

阅读文档(在那里发布了哪个链接),我不确定我是否使用正确的格式来获取我的数据。 cos,在文档中,我有ans 2-26。我真的不明白这意味着什么。

1 个答案:

答案 0 :(得分:1)

标签5F20 - CARD HOLDER NAME,如果CARD返回此标签的值,则值为十六进制字符串 - ASCII字符的十六进制值,您需要做的是将值转换为字符串和您将获得卡中个性化的价值。

in the document, i have ans 2-26. I do not really understand what it means.

有时我们会避免在卡片中个性化持卡人姓名,然后我们个性化" /" - 空格后跟/ = 2个字符。它是在不同EMV规范中定义的标签5F20的最小值。最大值为26因此2-26用于标签5F20。

希望这些信息对您有帮助..