我正在尝试读取智能卡,并且我能够从智能卡中获取一些数据。我现在面临的问题是如何从智能卡中获取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。我真的不明白这意味着什么。
答案 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。
希望这些信息对您有帮助..