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 开发指南.