CPU卡APDU的web操作
CPU卡介绍
CPU卡与M1卡不同, 他不是一种逻辑存储卡,一张空白的CPU卡就相似于一个空白的硬盘, 什么也做不了.CPU卡应用之前必须对CPU卡进行文件系统的创立.就是建设目录和各种类型的文件.
友我科技IC卡读卡器web插件
友我科技IC卡读卡器web插件反对CPU卡的web操作,反对的浏览器有IE,Chrome,Firefox,safari,Opera以及以这些为内核的浏览器,在web上CPU卡的操作分为两种, 一个是CPU卡复位, 一个是发送APDU指令.
CPU卡复位
在CPU卡操作之前必须对CPU卡复位, CPU卡复位的web接口如下:
ACPUReset()
不须要任何参数, 复位后通过回调函数返回复位字符串
回调函数返回后果:
FunctionID=17,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制失常程序,
strData:复位后的返回的16进制字符串
ValData:无
CPU卡APDU操作
CPU卡执行APDU指令,接口如下:
CPUCOS(COSHexString)
参数:COSHexString:要执行的COS指令,16进制字符串。
回调函数返回执行后的后果
回调函数返回后果:
FunctionID=19,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:无
strData:执行COS后的返回的16进制字符串
ValData:执行COS指令返回的状态,10进制显示,如:9000显示为36864
如果屡次执行APDU指令, 须要等到上一次apdu执行并在回调函数中返回后果前方可执行下一条,这是能够借助UID参数来辨别执行的adpu.
操作例程
如果曾经装置了友我科技IC卡读卡器web插件零碎,操作CPU卡,执行APDU就非常简单, 咱们已取CPU卡随机数为例:
首先还是复位:
function CPUReset(){ rfidreader.Repeat=0; rfidreader.HaltAfterSuccess=0; rfidreader.ACPUReset();}
回调函数返回后果:
rfidreader.onResult(function(resultdata){ var str; switch(resultdata.FunctionID) { case 17: if(resultdata.Result>0) { Resetstr =resultdata.strData; } else { str= "Error"; } break; }});
Resetstr为复位取得复位字符串ATR
而后是执行APDU:
function CPUCos(){ rfidreader.Repeat=0; rfidreader.HaltAfterSuccess=0; rfidreader.CPUCOS("0084000008");//取得8字节随机数 }
回调函数:
rfidreader.onResult(function(resultdata){ var str; switch(resultdata.FunctionID) { case 19: str="COS:"; if(resultdata.Result>0) { COSReturn=resultdata.strData; } else { str= "Error"; } break; }});
COSReturn就是返回的随机数.
参考资料: IC卡读卡器web开发指南.