刚刚做完了电子钱包的实验,把过程分享出来。
一.实验题目如下:
实验目的:
建立Java卡电子钱包程序,并进行java卡程序的编译和调试
实验设备:
PC机、智能卡读卡器、Java卡
实验内容:
1、 建立一个JavaCard工程
2、 编写电子钱包应用代码
3、 使用卡模拟器对应用代码进行编译调试
4、 使用Java卡对应用代码进行编译调试
实验报告:
设计一个电子钱包小应用程序,应该至少能够实现以下功能:电子钱包的安装、选择与撤销选择、存款、借款、获取钱包余额以及身份验证。
画出系统结构图和各部分程序流程图。
二.实验步骤
第一步:建立javacard工程,实验代码参照《智能卡原理与应用开发》(张大伟、靳伟编著)P87 页例程。
此处给出我敲好的代码: 百度云: https://pan.baidu.com/s/1j7qf6Y7XkmJEXJYqKl8JRQ 密码:33ti
第二步:设置密码
(1)Run-> Run Configurations: 进入如下界面, 右键 Java Card Application ,选择New,在该选项下方会出现一个以文件明命名的配置文件。
(2)我们查看刚刚建立好的这个文件,如下所示:
我们可以看到AID(建立工程时所设置),instance AID ,I install Data 等几项。
一开始的install Data是空的,它是这个程序的密码,需要手动设置,选中文件后点击edit,在Application Specific Parameters处填入密码:
此处我将密码设置为 010201 。点击 OK 设置成功。
第三步 运行代码
点击Run Configuration 窗口右下角的 Run,开始仿真,JCOP窗口如下所示:
我们可以看到,刚刚建立的JavaCard程序的一些基本信息。隐私原因,我将一些地方打了马赛克。
接下来正式进行测试:
Step1:选择钱包,并验证密码
在 cm> 处输入 /select 文件名 ,回车
在 cm> 处输入 send 802000000301020100, 回车
返回 90 00 ,验证成功;
Step2:存钱指令(数值02),并查看余额
在 cm> 处输入 send 80300000010200, 回车
在 cm> 处输入 send 805000000002, 回车
有返回值可知,目前余额为 02 ,存钱成功;
Step3:消费指令(数值01),并查询余额
在 cm> 处输入 send 80400000010100, 回车
在 cm> 处输入 send 805000000002, 回车
返回值 00 01 说明余额为1,消费成功。