我已经使用 javax.smartcardio 从智能卡读取序列号而不需要太多努力 . 但是现在我被读取了 . 我正在根据ISO 7816指南创建APDU命令,但由于我的十六进制值被转换为错误的字节,因此无法创建正确的APDU命令 .

import javax.smartcardio.Card;

import javax.smartcardio.CardChannel;

import javax.smartcardio.CardException;

import javax.smartcardio.CardTerminal;

import javax.smartcardio.CommandAPDU;

import javax.smartcardio.ResponseAPDU;

import javax.smartcardio.TerminalFactory;

class SmartCardAPIs {

public int Create_MF() throws CardException{

//--Variable declaration

int result=0;

Card card=null;

byte[] responseData=null;

ResponseAPDU answer=null;

String SW1=null;

String SW2=null;

int cla, ins, p1, p2;

byte[] data=null;

//---------------------------------------------

//--1--Establish connection with the smart card

TerminalFactory factory = TerminalFactory.getDefault();

List terminals = factory.terminals().list();

// Use the first terminal

CardTerminal terminal = terminals.get(0);

// Connect with the card

card = terminal.connect("*");

CardChannel channel = card.getBasicChannel();

//---------------------------------------------

//--2--Create MF

cla=0x00;

ins=0xE0;

p1=0x00;

p2=0x00;

data = new byte[] {

(byte) 0x21,

(byte) 0x62,

(byte) 0x1F,

(byte) 0x82, // **** Getting converted to -126 ****

--

--

--

};

answer = channel.transmit(new CommandAPDU(cla, ins, p1, p2, data));

responseData= answer.getBytes();

if(responseData!=null)

{

if(responseData.length==2)

{

SW1=String.format("%02X ", (responseData[0])).trim();

SW2=String.format("%02X ", (responseData[1])).trim();

}

}

}

}

我有两个问题

1:命令中的数据APDU采用错误的字节(标记为 ***** ) .

2:SW1和SW2返回为6A 80,这意味着数据字段中的参数不正确(我猜是因为在以十六进制格式将int转换为字节时为负值,但由于我不得不这么做而无法帮助) .

我在这里放置的部分APDU命令是我提供的完整命令的一部分,命令是100%正常并经过测试,因为我已成功使用智能卡工具使用命令在空白卡中创建MF我现在想在java中做同样的事情 .

我认为问题在于这个APDU被创建的方式,可能是负值问题(虽然我已经创建了Applet来从卡读取序列号,但我对java APDU的东西不是很专业) .

java apdu读取社保卡_使用javax.smartcardio的用于智能卡的ISO 7816 APDU相关推荐

  1. M100嵌入式自动吞吐式读写器|电动读卡机如何通过C#程序读取社保卡号

    M100嵌入式自动吞吐式读写器|电动读卡机是一款双保护门功能读卡器,第一层防尘防异物机械门,第二层电动门. M100嵌入式自动吞吐式读写器|电动读卡机采用耐高温.耐磨擦.高强度.抗老化的复合型塑胶为主 ...

  2. 社保数据保存现java提示_读取社保卡信息

    08                                社会保障卡号码        cn                       12      | 09              ...

  3. java如何读取ic卡_java读取IC卡设备

    有几个项目都用到IC卡设备,IC卡供应商提供的例程里没有java的例子,调试过程发现各种问题,总算是测试通过了,mark一下. 基本思路:通过JNative.jar包调用dll方式,读取IC卡的序列号 ...

  4. java读取社保卡_id 社保卡信息读取 使用读卡器对社保卡信息读取 - 下载 - 搜珍网...

    新版读卡器 新版读卡器/ADVPACK.DLL 新版读卡器/ANIGIF.oca 新版读卡器/ASYCFILT.DLL 新版读卡器/AniGIF.ocx 新版读卡器/COMCAT.DLL 新版读卡器/ ...

  5. JAVA 的读取Excel方法_纯Java的方式读取excel2007

    * 首先介绍excel2007文件的格式,这里单只工作表文件,不包括加载宏的以及其他格式的,即.xlsx扩展名的 * 你可以把Book1.xlsx这个文件用解压缩文件打开,这是office2007的新 ...

  6. java audioinputstream 读取音频文件_从原始文件中获取最多x个字节的AudioInputStream(剪切音频文件)...

    小编典典 下面的代码向您展示如何复制音频流的一部分,从一个文件读取并写入另一个文件. import java.io.*; import javax.sound.sampled.*; class Aud ...

  7. Java实现混音 音频合成_使用javax.sound实现简单音频播放

    本文实例为大家分享了javax.sound实现简单音频播放的具体代码,供大家参考,具体内容如下 /** * @see * @author Al_assad yulinying_1994@outlook ...

  8. java word 读取excel数据_在Java中实现读写操作Word、Excel等文件

    Jakarta的POI项目提供了一组操纵Windows文档的Java API,如下几个类提供了操作Excel文件的方便的途径:HSSFWorkbook.HSSFSheet.HSSFRow.HSSFCe ...

  9. java poi 读取xlsx文件_使用POI读取xlsx文件(SXSSFWorkbook)

    我正在尝试使用POI来读取大型xlsx文件的第一次测试,但要使用小文件进行简单测试,我无法显示单元格的值.使用POI读取xlsx文件(SXSSFWorkbook) 有人可以告诉我什么是我的错误.所有的 ...

最新文章

  1. Android之PullToRefresh控件源码解析
  2. 单例带来的线程安全问题
  3. python中的魔法属性和方法
  4. linux 完全卸载软件方法
  5. 深入理解== 和 equals 的区别
  6. h3c trunk口改access_H3C交换机二层应用及三层交换基本配置
  7. 异常捕获,返回错误码code给前端
  8. 在Mac中用快捷键快速插入日期时间
  9. RK3288_Android7.1平台基于DRM框架的LCD开发
  10. 记一次守护日志导致硬盘空间告警问题
  11. win10 64位系统 excel2016 vba odbc方式 访问 oracle远程数据库 免安装oracle客户端
  12. 最好用的100个黑科技网站
  13. IDEA 使用mybatis插件Free Mybatis plugin
  14. Golang中defer、return、返回值之间执行顺序的坑
  15. 自己动手做个智能小车(2)
  16. win7如何设置通电自动开机_win7系统如何自动开机|win7自动开机的方法
  17. html页面字体美化,网页字体的美化-网页设计,HTML/CSS
  18. 微信小程序,不可不知的一二三四
  19. 剑指 Offer 14.剪绳子(动态规划、数学分析)
  20. 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

热门文章

  1. 为什么程序员难找对象?
  2. hp388服务器安装linux,HP DL388 G7做OLI,RAID,BIOS设置linux安装概要
  3. 图纸管理系统_图纸文档管理软件系统
  4. Inspect的学习笔记
  5. 洛谷——AT1350 深さ優先探索
  6. 关于xxl-job终止任务但程序没有停止的问题
  7. 日语五十音之平假音和片假音的巧记
  8. Quartz源码解读-任务是如何定时执行的
  9. 自从用了这款黑科技工具,妈妈再也不用担心我的c盘文件爆满了
  10. 查看linux Mac地址