我正在尝试手动生成AC,我有一个生成AC的工具,但我想自己生成它以了解相同的算法。
我的计算适用于Discover卡,但MasterCard失败了。根据我的理解,用于生成AC的数据取决于标签8C - CDOL1,我们通过Gen AC命令+ AIP + ATC向卡提供。
AIP和ATC - 由ICC内部访问。
用于生成AC的数据是: -
data part of Gen AC command + value of tag 82 + value of tag 9f36 + 80 + optional 00 to make it multiple of 8.
这是我的逻辑,可能是我使用错误的数据来计算A.C这就是为什么从我的测试工具中得到不同的结果。
终端提供的数据
金额,授权 - 000000000201
金额,其他 - 000000000000
终端国家代码 - 0826 - 英国
终端验证结果 - 00 00 00 00 00
交易货币代码 - 0826 - 英镑
交易日期 - 15 04 28
交易类型 - 00 - 商品和服务
不可预知的数字 - 30 90 1B 6A
终端类型 - 23 - 出席,仅限离线。由商人经营
数据验证码 - 00 00
ICC动态编号 - 1E AB C1 26 F8 54 99 76
CVM结果 - 00 00 00
Gen AC使用CDOL1 80 AE 40 00 2B 0000000002010000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000 此命令返回9F26。 我用于钙化的数据是: -
0000000002010000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000 3800000180 [数据是8的倍数]
其中3800是AIP 0001是ATC,80是填充[填充方法2 EMV]这是我的逻辑,是否有人告诉我应该把更多的注意力集中在生成与我生成的工具相同的AC上。
答案 0 :(得分:4)
MasterCard应用程序密码( AC )生成比其他卡方案更复杂。
卡可以使用不同的ICC会话密钥派生( SKD )方法:
数据对象( DO )可以使用不同的附加或修改值集:
可以通过密码版本号( CVN )和应用程序控制位检测使用的方法和数据变量。 CVN是IAD标记0x9F10
的子字段。
详细信息是专有的,可供万事达卡成员使用。
有关它的深入学习,请查看“ M /芯片卡应用程序加密算法”和M /芯片卡应用程序参考。