我从Oracle官方网站下载了Java Card Connected Edition 3.0.2并进行了安装.JCDK中有一些网络样本.在编写的文档中:
必须在NetBeans IDE中运行所有示例.它们无法在此版本的开发工具包中从命令行运行.
示例正确地与NetBeans IDE一起使用.我可以导入它们并在Java Card Platform上运行.
但我想在Eclipse IDE上使用这些示例.在Eclipse中作为Java Card SDK路径,我展示了Java Card Connected主路径.然后创建了新设备并尝试启动它[ 例如CardHolderApp ].但是Eclipse给出了:
ApduTool thread exited
User input thread exited
APDU|ApduTool [v3.0.2]
APDU| Copyright (c) 2009 Sun Microsystems, Inc.
APDU| All rights reserved.
APDU| Use is subject to license terms.
APDU|Opening connection to localhost on port 9025.
APDU|Connected.
APDU|java.net.ConnectException: Connection refused: connect
ApduTool process finished with code: 1
Run Code Online (Sandbox Code Playgroud)
.log文件:
!ENTRY org.eclipse.core.jobs 4 2 2015-09-08 01:39:17.142
!MESSAGE An internal error …Run Code Online (Sandbox Code Playgroud) 我在docs中发现他们指的是SIMPLE-TLV和BER-TLV.我查看了大多数EMV和GP文档,但他们没有提到不同的内容.
谁能帮助我理解两者的区别?
前言:
我有一个双接口智能卡读卡器,具有一些扩展功能(除了向卡发送APDU命令和接收APDU响应).
例如,在其文档中提到您可以使用以下命令获取阅读器的固件版本:
GET_FIRMWARE_VERSION: FF 69 44 42 05 68 92 00 05 00
在它的工具中,有一个用于此功能的按钮,它工作正常:
我甚至嗅了嗅USB端口,看看我的电脑和读卡器之间的连接到底有什么交换这个功能:
问题:
我想使用其他工具或通过代码获取我的阅读器版本(并可能发送其他扩展命令),但我必须在读卡器中插入一张卡才能发送命令,否则我会收到No Card Present异常,而我不想发送命令到卡!(阅读器工具成功回答GET_FIRMWARE_VERSION,读卡器插槽中没有任何卡可用)
到目前为止我做了什么:
1.我尝试了一些工具,包括OpenSCTool,PyAPDUTool和其他读者工具.2.我写了以下python脚本来发送扩展命令.
#--- Importing required modules.
import sys
import time
sys.path.append("D:\\PythonX\\Lib\\site-packages")
from smartcard.scard import *
import smartcard.util
from smartcard.System import readers
#---This is the list of commands that we want to send device
cmds =[[,0xFF,0x69,0x44,0x42,0x05,0x68,0x92,0x00,0x04,0x00],]
#--- Let's to make a connection to the card reader
r=readers()
print "Available Readers :",r
print
target_reader …Run Code Online (Sandbox Code Playgroud) 我是智能卡开发的新手.请帮助我了解如何开始.
我目前正在从事文凭工作.部分工作包括开发常规SIM卡的JavaCard applet .第一种选择是使用JavaCard2.X API并使用APDU命令与applet通信.这可能非常棘手,因为我需要开发用于android的客户端应用程序(它将与此applet通信),并且到目前为止只能通过特殊 - 不那么用户友好 - API称为Seek-for-android.(如果我错了,请纠正我)
但是,我也遇到了JavaCard3 Connected Edition,它提供了更多选项 - 例如web applets.使用部署在SIM卡上并通过移动设备中的浏览器访问它们的webapps 将非常方便(当然,开发这样的applet也会更容易).问题是,我找不到任何提及Javacard3在现实生活中使用,甚至在真正的SIM卡上使用.我甚至找不到任何可能发布此类卡片的日期.实际上,几乎没有关于这个主题的信息.
所以,我的问题是 - 你对这个平台有什么用处吗?关于现实生活的用法?哪张卡支持Javacard3?是否有任何开发人员智能卡,"JC3启用"?将来会有这个平台的SIM卡吗?
非常感谢你的答案!
我在Eclipse中开发了一个Java Card applet并获得了一个cap文件.然后我使用jcManager - Java安全卡管理器将该文件加载到我的智能卡.我有两种类型的智能卡:
我的智能卡读卡器是:SDI011双接口读卡器.
另外,对于开发SIM applet,我正在使用Gemalto Developer Suite [3.6].该IDE有一个GSM模拟器,我的SIM小程序可以很好地工作.它给出了applet的cap,jar,jac,exp ..文件.
到目前为止一切都很好,但我想将该cap文件加载到我的联系人或非接触式Java卡[因为我没有可用的SIM卡],然后发送 - 接收APDU消息.
可能吗?如果有,怎么样?如何将我的SIM小程序加载到真正的智能卡 [ 不是SIM卡 ]?
我有一张java卡,我写了一个小代码,将APDU发送到java卡.这里当我发送Init_Update命令时,得到0x6985像: -
CMD -> 80 50 00 00 08 11 22 33 44 55 66 77 88
RES <- 6985
Run Code Online (Sandbox Code Playgroud)
但是当我用其他工具发送此命令时,它会给出所需的结果,如: -
Transmit: 80 50 00 00 08 []
11 22 33 44 55 66 77 88 ."3DUfw.
Card answered: 61 1C
Run Code Online (Sandbox Code Playgroud)
我的java代码对我有的其他java卡很有用.谁能告诉我这种不同行为的原因是什么?
// full java code
public static void main(String[] args) {
// TODO code application logic here
try
{
factory = TerminalFactory.getDefault();
terminals = factory.terminals().list();
terminal = terminals.get(0);
card = terminal.connect("*");
channel =card.getBasicChannel();
CommandAPDU cmdAPDU;
ResponseAPDU response;
byte[] …Run Code Online (Sandbox Code Playgroud) 我已经使用过智能卡,我熟悉APDU命令(在ISO/IEC 7816和全球平台规范中定义).
现在我想知道是否有办法将APDU命令发送到插入手机的USIM/SIM卡?(安装了Android v4.4.4 kitkat的三星A3.)
我已经在谷歌搜索过,我发现了一些名为SIM Toolkit Application和Seek for Android的相关主题和工具.但我真的不明白这些是什么?这些项目是我必须在手机上安装的两个应用程序吗?或者这两个工具是否已经安装在USIM/SIM卡上并从手机接收命令?
主动命令,APDU命令和AT命令有什么区别?
我应该学习android来开发SIM卡应用程序还是我只需要Java Card规范和ETSI标准?
提前致谢.
我是Java Card Programming(使用netbeans)的新手.我在Java Card Development Quick Start页面中做了所有事情,我创建了一个经典的卡片小程序,并尝试模拟它.但是当我尝试在设备控制台上模拟并发送命令时,它会发送错误
"Connection refused: connect".
我不明白,有什么不对.
有什么建议?
这是它的屏幕截图: