zoukankan      html  css  js  c++  java
  • BS结构RFID读写器web插件开发之六----CPU卡APDU操作

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

  • 相关阅读:
    idea配置web项目启动的详细说明
    mybatis如何防止sql注入(1)
    SQL基础(3)
    SQL基础(2)
    SQL基础(1)
    SpringMVC—对Ajax的处理(含 JSON 类型)(3)
    SpringMVC 之URL请求到Action的映射(1)
    Oracle 多表查询(2)
    Oracle 多表查询(1)
    mysql查询最近30天、7天、每天、昨天、上个月的记录
  • 原文地址:https://www.cnblogs.com/yoworfid/p/14788558.html
Copyright © 2011-2022 走看看