基于Omnikey 5422的卡组织识别及卡片信息读取APDU命令问询
EMV卡组织识别及卡号/有效期读取的APDU实操方案
一、判断卡组织的两种方法
1. 通过AID快速识别
EMV卡的主应用都有固定的应用ID(AID),发送SELECT命令尝试选中对应AID,返回状态码9000就说明是该卡组织的卡片:
- Visa卡AID:
A0000000031010,对应的SELECT命令:00 A4 04 00 07 A0000000031010 00 - Mastercard卡AID:
A0000000041010,对应的SELECT命令:00 A4 04 00 07 A0000000041010 00 - 银联卡AID:
A000000333010101,对应的SELECT命令:00 A4 04 00 08 A000000333010101 00
2. 通过卡号BIN段识别
如果已经获取到卡号,可根据前缀判断:
- Visa:卡号以4开头
- Mastercard:卡号以51-55或2221-2720开头
- 银联:卡号以62开头
二、读取卡号、有效期的APDU命令
所有操作的前提是先成功选中对应卡组织的应用(返回状态码9000)。
1. 读取卡号
直接用GET DATA命令读取卡号标签(5A):
00 CA 00 5A 00
返回数据中,标签5A后的字节内容就是十进制卡号字符串。
2. 读取有效期
- 到期日(标签
5F24):格式为YYMM(例如2512代表2025年12月到期)00 CA 00 5F24 00 - 生效日(标签
5F25):格式同样为YYMM00 CA 00 5F25 00
3. 备选:用READ RECORD读取全量基本信息
如果GET DATA命令不被卡片支持,可读取EMV基本记录文件(SFI=1,记录1):
00 B2 01 0C 00
返回的TLV格式数据中,包含卡号(5A)、到期日(5F24)等所有基础字段,自行解析即可。
内容的提问来源于stack exchange,提问作者Hussain Akbar
相关产品推荐
相关产品推荐

