智能卡技术实验报告(二).docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能卡技术实验报告(二)

实验三 Java卡电子钱包程序(改良版)要求:预存款、超过小额消费限额需输入PIN码、卡片锁定后可用PUK解锁(管理员身份)系统结构图:StartCLA=00?NReturnNInstallGet BufferYCLA=80INS=60?YNCLA=80?NYGET_BALANCEINS=20?CREDITINS=30?NDEBITINS=40?NVERIFYINS=50?NOutput6d00YYYYOutput6e00GET_BALANCE存款部分流程:StartGet BufferRead BytesGet Credit AmountPIN.getTriesRemain=0?YNOutput 6303(Balance +Credit Amount)Max Balance?ReturnBalance=Balance +Credit AmountNYCredit AmountMax||Credit Amount0?NYOutput 6a83Output 6a84关键代码://判断卡片是否锁定,若锁定则不能进行存款操作。if((pin.getTriesRemaining()==0))ISOException.throwIt(SW_CARD_LOCKED);消费部分流程:StartPIN.getTriesRemain=0?YNOutput 6303Get BufferRead BytesGet Debit Amount(Balance-Debit Amount)0?ReturnBalance=Balance-Debit AmountNYDebit AmountMax||Debit Amount0?NYOutput 6a83Output 6a85Debit Amount=limit balance?||Debit Amount0?PIN validated?YNNYOutput 6301关键代码://判断是否单次消费超过限额if(debitAmount=limitbalance){ if(debitAmount0) //判断消费交易额度是否满足要求 ISOException.throwIt(SW_INVALID_TRANSACTION_AMOUNT);//判断钱包余额是否大于消费数额,即钱包是否透支if((short)(balance-debitAmount)(short)0)ISOException.throwIt(SW_NEGATIVE_BALANCE);}else{ if(!pin.isValidated())ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED); if(debitAmountMAX_TRANSACTION_AMOUNT) //判断交易额度是否满足要求ISOException.throwIt(SW_INVALID_TRANSACTION_AMOUNT);if((short)(balance-debitAmount)(short)0) ISOException.throwIt(SW_NEGATIVE_BALANCE);pin.reset();}balance=(short)(balance-debitAmount);管理员认证:StartGet BufferGet PUKPUK是否正确?Output 6302ReturnNYReset PIN Try Counter关键代码:if(puk.check(buffer, ISO7816.OFFSET_CDATA, byteRead)==true)pin.resetAndUnblock();elseISOException.throwIt(SW_ADMINISTRATORVERIFICATION_FAILED);3、完成电子钱包程序的开发,然后再在Java卡上进行验证本次调试仅采用模拟器,设置AID为“|my.wallet.1”,PIN码值为“(验证次数为3次),PUK码为“|0102030405060708”。(1)选择my.wallet.1,返回正确。(2)查询预存款。预存款为100.00元。(3)在未认证的情况下消费1000H(16.00)元。消费成功。(4)查询余额,消费成功,余额为5400H(84.00)元。(5)继续消费3300H(51.00)元,返回6301,提醒持卡人输入密码才能消费。(6)输入3次错误密返回6300。(7)此时再消费3200H(50.00)元以下的金额,返回6303,表示卡片已被锁定,无法交易。(8)输入PUK码,返回9000,卡片已解锁。(9)继续消费3300H(51.00)元,返回6301,提醒持卡人输入密码才能消费。(10)输入正确的PIN

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档