日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

基于PBOC的电子钱包消费交易过程

發(fā)布時(shí)間:2024/3/26 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于PBOC的电子钱包消费交易过程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先終端和卡片有一個(gè)共同的密鑰叫做消費(fèi)密鑰:PurchKey

  假設(shè)PurchKey = 11223344556677888877665544332211  在滿足安全條件的情況下:

  第一步:終端向卡片發(fā)送消費(fèi)初始化命令:

  Apdu: 80?? ?50 ???01???02???0B?? ?01???? ?00001000 ?????001122334455

  ??? CLA ??INS ????P1? ?P2 ???LC??KeyIndex ??交易金額 ?????終端機(jī)編號(hào)

P1:密鑰用途、P2:密鑰版本、 Lc:密鑰文件信息長(zhǎng)度、KeyIndex:密鑰文件標(biāo)識(shí)符

  卡片返回15個(gè)字節(jié)的數(shù)據(jù)如下(不包括9000):

00000000?????????????????? 0000?????????????????? 000000???? ?????? 01???? ??????????????? 00????????????? 11223344

卡片余額???????? ? 交易序號(hào)???? ?? 透支限額 ?密鑰版本號(hào)?算法標(biāo)識(shí)???? ??隨機(jī)數(shù)

MAC1的計(jì)算過(guò)程如下(終端):

1.計(jì)算過(guò)程密鑰:SessionKey

  InputData = 11223344??? ?0000 ???????????????0001 ?(8bytes)

  ??????????? 隨機(jī)數(shù) ???卡片脫機(jī)交易序號(hào) ????終端交易序號(hào)后四位

  PurchKey = 11223344556677888877665544332211(消費(fèi)密鑰)

  SessionKey?= 3DESEnypt(InputData, PurchKey) =003238ABC57659DD(計(jì)算過(guò)程密鑰)

用LoadKey輸入鍵對(duì)InputData輸入數(shù)據(jù) 做3DES加密

2.計(jì)算MAC1

  InputData1 = 00001000???? ?06 ????????001122334455 ?????20120229135100

  ????????? 交易金額 ????交易類(lèi)型 ?????終端機(jī)編號(hào) ????????日期時(shí)間

  SessionKey?= 003238ABC57659DD

MAC1 = MAC(InputData1SessionKey?) = F15CAB75

  用SessionKey對(duì)InputData1做MAC運(yùn)算

  第二步:終端向卡片發(fā)送消費(fèi)命令:

  Apdu: 80 ??54 ??01? ?00?? ?0F???? 00000001????20111221214822 ????? ?3A845BF0

  ???? CLA ?INS? ?P1 ??P2?? ?LC ??終端交易序號(hào) ???交易日期時(shí)間 ?????? ??MAC1

卡片用同樣的方法計(jì)算MAC1并驗(yàn)證終端發(fā)來(lái)的MAC1是否正確來(lái)確認(rèn)終端是否合法。如果MAC1驗(yàn)證沒(méi)通過(guò),卡片會(huì)返回MAC錯(cuò)誤終止交易。如果MAC1驗(yàn)證通過(guò),進(jìn)行第三步。

第三步:卡片修改余額,脫機(jī)交易序號(hào)加1并計(jì)算MAC2 TAC,并返回給終端

3.計(jì)算MAC2

InputData2= 00001000  交易金額

  SessionKey?= 003238ABC57659DD

  MAC2 = MAC(InputData2 SessionKey?) = 56988A13

用SessionKey對(duì)InputData2做MAC運(yùn)算,

4.計(jì)算TAC

  卡片和終端還有一個(gè)共同的密鑰TAC密鑰:TACKey

  假設(shè)TACKey = 00112233445566778899AABBCCDDEEFF

  TACSessionKey=XOR( Left(8),Right(8)) =8888888888888888

  TACKey左右8個(gè)字節(jié)做異或運(yùn)算

InputData3=00001000??? ? 01???????? ?001122334455 ??????????? 00000001???????? 20111221?????? 214822

  ???????? 交易金額 ??交易類(lèi)型 ???終端機(jī)編號(hào)?????? ?終端交易序號(hào)? ?交易日期 ?交易時(shí)間

  TAC = MAC(InputData3, TACSessionKey) = 3FF7A28A

MAC2TAC作為消費(fèi)命令的返回?cái)?shù)據(jù)返回給終端,消費(fèi)交易到此就結(jié)束了,TAC作為清算的時(shí)候驗(yàn)證交易數(shù)據(jù)真?zhèn)魏屯暾缘闹匾罁?jù),連同交易記錄一同保存在終端。

?

TAC的計(jì)算方法:
初始向量: 00 00 00 00 00 00 00 00
待處理數(shù)據(jù):4字節(jié)交易金額 +1字節(jié)交易類(lèi)型標(biāo)識(shí)+6字節(jié)終端機(jī)編號(hào)+4字節(jié)終端交易序號(hào)+4字節(jié)終端交易日期+3字節(jié)終端交易時(shí)間
密鑰:TAC密鑰左8字節(jié)與右8字節(jié)異或得到的8字節(jié)數(shù)據(jù)
算法:DES_MAC 算法

?

說(shuō)明:以下計(jì)算TAC的流程適用于:

?1.如果PSAM卡中TAC秘鑰類(lèi)型是口令重裝密鑰類(lèi)型,則此PSAM卡中的TAC密鑰對(duì)CPU卡中的分散因子分散之后=CPU卡中的TAC密鑰,因?yàn)?/span>?口令重裝密鑰在被使用時(shí)COS會(huì)自動(dòng)左右8字節(jié)進(jìn)行異或。

?2.如果PSAM卡中的TAC密鑰類(lèi)型是加密MAC密鑰,或者是MAC密鑰類(lèi)型,則此PSAMTAC密鑰對(duì)CPU卡中的分散因子分散之后=CPU卡中的TAC密鑰左右8字節(jié)異或的值

總結(jié)

以上是生活随笔為你收集整理的基于PBOC的电子钱包消费交易过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。