專利名稱:一種對(duì)雙電子錢包進(jìn)行操作的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種在CPU終端對(duì)雙電子錢包進(jìn)行操作的方 法。
背景技術(shù):
邏輯加密卡Mifare I(Ml)技術(shù)成熟、價(jià)格低廉,在傳統(tǒng)的城市交通智能卡應(yīng)用中 占據(jù)了絕大部分,但Ml卡內(nèi)部沒有獨(dú)立的CPU和操作系統(tǒng),完全依靠內(nèi)置硬件邏輯電路實(shí) 現(xiàn)安全認(rèn)證和保護(hù),因此導(dǎo)致Ml卡容易被破解,按交通智能卡“一卡多用、多卡互通”的發(fā)展趨勢,Ml卡內(nèi)電子錢包的資金存量必將越來越高,因此Ml的安全隱患已引起高度的關(guān)注。CPU卡內(nèi)具有中央處理器(CPU)、隨機(jī)存儲(chǔ)器(RAM)、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ) 器(EEPROM)以及片內(nèi)操作系統(tǒng),其安全性大幅優(yōu)于Ml卡,但高昂的價(jià)格嚴(yán)重制約了其推廣 應(yīng)用,近來隨著非接觸CPU卡的推出,其價(jià)格接近Ml卡,技術(shù)也日趨成熟,這使全面推廣應(yīng) 用CPU卡取代Ml卡成為可能?,F(xiàn)在技術(shù)中存在一種包含有Ml和CPU兩部分的CPU卡,但是這種CPU卡在內(nèi)部處 理流程上兩部分是完全獨(dú)立的,沒有同步機(jī)制來對(duì)這兩部分中的雙電子錢包進(jìn)行同步,因 此這樣就造成了在使用Ml終端或CPU終端消費(fèi)時(shí),雙電子錢包的余額不一致的問題。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中的不足,本發(fā)明提供了一種在CPU終端對(duì)雙電子錢包進(jìn)行操作的方法,所述方法包括CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),所述CPU卡上電并初始化;獲取第一電子錢包的余額;獲取第二電子錢包的余額;比較所述第一電子錢包和所述第二電子錢包的余額的大??;若所述第一電子錢包的余額小于所述第二電子錢包的余額,則將所述第二電子錢包的余額設(shè)置為與所述第一電子錢包的余額一致,并進(jìn)行尋卡操作;若所述第二電子錢包的余額小于所述第一電子錢包的余額,則將所述第一電子錢包的余額設(shè)置為與所述第二電子錢包的余額一致,并進(jìn)行尋卡操作;若所述第一電子錢包的余額與所述第二電子錢包的余額相等,則直接進(jìn)行尋卡操作。本發(fā)明的有益效果在于本發(fā)明提供的一種在CPU卡內(nèi)對(duì)雙電子錢包進(jìn)行操作方法,該方法提供了一種同步機(jī)制,實(shí)現(xiàn)了雙電子錢包真正的同步;該方法采用CPU終端進(jìn) 行充值,提高了原有的通過Ml終端充值的安全性;并且本發(fā)明提供的方法在不改變Ml消費(fèi)終端的前提下,仍然可以使用原有的Ml卡進(jìn)行消費(fèi),這樣有利于消費(fèi)的統(tǒng)一。
圖1為本實(shí)施例提供的一種在CPU卡內(nèi)對(duì)雙電子錢包進(jìn)行操作的方法的流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方 式做進(jìn)一步地詳細(xì)描述。本發(fā)明使用了一種雙界面CPU卡,該雙界面CPU卡具體為帶有ISO 14443接口和 Mifare 1 (簡稱Ml)的非接觸式CPU卡,如SLE66CL80PEM、P5ra012等,并且通過該非接觸式 CPU卡,本發(fā)明實(shí)現(xiàn)了雙電子錢包應(yīng)用,具體地,使用該非接觸式CPU卡中的ISO 14443接口 實(shí)現(xiàn)的是符合銀行標(biāo)準(zhǔn)(如PB0C2.0標(biāo)準(zhǔn))的電子錢包,即CPU電子錢包,而使用該非接觸 式CPU卡中的Mifare 1實(shí)現(xiàn)的是基于邏輯加密芯片標(biāo)準(zhǔn)(如Mifare標(biāo)準(zhǔn))的金融應(yīng)用, 即Ml電子錢包,兩種錢包在硬件上相互獨(dú)立,但CPU電子錢包應(yīng)用可以訪問Ml電子錢包。本實(shí)施例提供了一種在CPU終端對(duì)CPU卡內(nèi)的CPU電子錢包和Ml電子錢包進(jìn)行 操作的方法,在本實(shí)施例中,帶有CPU電子錢包和Ml電子錢包的CPU卡為非接觸式CPU卡, CPU終端為非接觸式終端,具體實(shí)現(xiàn)步驟如下步驟101 =CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),CPU卡上電并初始化;步驟102 判斷自身是否已進(jìn)行了個(gè)人化,即判斷內(nèi)部的個(gè)人化標(biāo)志位是否為 OxAA,若是,則執(zhí)行步驟103,若否,則執(zhí)行步驟109 ;在本實(shí)施例中,個(gè)人化標(biāo)志位是發(fā)卡系統(tǒng)與CPU卡預(yù)先約定的,當(dāng)發(fā)卡系統(tǒng)已對(duì) CPU卡進(jìn)行個(gè)人化時(shí),則發(fā)卡系統(tǒng)在CPU卡中設(shè)置一個(gè)個(gè)人化標(biāo)志位,并將該個(gè)人化標(biāo)志位 設(shè)置為預(yù)先約定的值,在本實(shí)施例中發(fā)卡系統(tǒng)與CPU卡預(yù)先約定的值具體為OxAA,是自定 義的,即當(dāng)個(gè)人化標(biāo)志位是OxAA時(shí),則表示CPU卡已進(jìn)行了個(gè)人化,否則表示CPU卡未進(jìn)行 個(gè)人化,并且發(fā)卡系統(tǒng)和CPU卡也可以預(yù)先約定任意其他的值作為標(biāo)識(shí),如0x01,即當(dāng)個(gè)人 化標(biāo)志位是0x01時(shí),則表示CPU卡已進(jìn)行了個(gè)人化,否則表示CPU卡未進(jìn)行個(gè)人化;
或者,在本實(shí)施例中發(fā)卡系統(tǒng)與CPU卡預(yù)先約定,若發(fā)卡系統(tǒng)已對(duì)CPU卡進(jìn)行個(gè)人 化時(shí),則發(fā)卡系統(tǒng)在CPU卡中創(chuàng)建一個(gè)文件系統(tǒng)的主目錄MF,當(dāng)CPU卡判斷內(nèi)部已存在文件 系統(tǒng)的主目錄MF時(shí),則表示CPU卡已進(jìn)行了個(gè)人化,當(dāng)CPU卡判斷內(nèi)部不存在文件系統(tǒng)的 主目錄MF時(shí),則表示CPU卡未進(jìn)行個(gè)人化;或者,發(fā)卡系統(tǒng)與CPU卡預(yù)先約定,若發(fā)卡系統(tǒng)已對(duì)CPU卡進(jìn)行個(gè)人化時(shí),則發(fā)卡 系統(tǒng)在CPU卡中的文件系統(tǒng)的主目錄MF下創(chuàng)建一個(gè)標(biāo)識(shí)文件,當(dāng)CPU卡判斷內(nèi)部已存在標(biāo) 識(shí)文件時(shí),則表示CPU卡已進(jìn)行了個(gè)人化,當(dāng)CPU卡判斷內(nèi)部不存在標(biāo)識(shí)文件時(shí),則表示CPU 卡未進(jìn)行個(gè)人化。步驟103 獲取Ml的扇區(qū)密鑰;在本實(shí)施例中,預(yù)先約定存儲(chǔ)Ml電子錢包的余額的扇區(qū)號(hào)和塊號(hào),并根據(jù)該預(yù)先 約定的扇區(qū)號(hào)來獲取Ml的扇區(qū)密鑰,其中獲取Ml的扇區(qū)密鑰的方法具體為調(diào)用API接口 函數(shù) extern WORD GetMifareSectorPassword (BYTE^secPwdBuf, BYTE blockNo)來獲取 Ml 的扇區(qū)密鑰。步驟104 獲取Ml電子錢包的余額;在本實(shí)施例中,CPU卡根據(jù)步驟103中獲得的Ml的扇區(qū)密鑰,以及預(yù)先約定的存儲(chǔ)Ml電子錢包的余額的塊號(hào)來獲取Ml電子錢包的余額,其中獲取Ml電子錢包的余額的方法具體為調(diào)用 API 接 口函數(shù) extern BYTEGetMifarePurseBalance (BYTE^balanceBuf)來 獲取Ml電子錢包的余額。步驟105 獲取CPU電子錢包的余額;在本實(shí)施例中,獲取CPU電子錢包的余額的方法具體為查找應(yīng)用文件ADF的地址;根據(jù)應(yīng)用文件ADF查找ADF下的CPU電子錢包文件的地址;根據(jù)查找得到的CPU電子錢包文件的地址和預(yù)先設(shè)定的CPU電子錢包的余額的偏 移量來計(jì)算用于存儲(chǔ)CPU電子錢包的余額的地址;根據(jù)計(jì)算得到的用于存儲(chǔ)CPU電子錢包的余額的地址來讀取CPU電子錢包的余 額;或者,預(yù)先約定CPU卡內(nèi)有一塊存儲(chǔ)空間用于存儲(chǔ)CPU電子錢包的余額的地址,則從上 述存儲(chǔ)空間中讀取上述地址,再根據(jù)上述地址直接讀取CPU電子錢包的余額。步驟106 對(duì)Ml電子錢包和CPU電子錢包進(jìn)行同步,即比較Ml電子錢包的余額與 CPU電子錢包的余額的大小,若Ml電子錢包的余額小于CPU電子錢包的余額,則執(zhí)行步驟 107,若CPU電子錢包的余額小于Ml電子錢包的余額,則執(zhí)行步驟108,若Ml電子錢包的余 額與CPU電子錢包的余額相等,則執(zhí)行步驟109 ;步驟107 將CPU電子錢包的余額設(shè)置為與Ml電子錢包的余額一致,然后執(zhí)行步 驟 109 ;在本實(shí)施例步驟107中,將CPU電子錢包的余額設(shè)置為與Ml電子錢包的余額一致 的方法,具體為查找應(yīng)用文件ADF的地址;根據(jù)應(yīng)用文件ADF查找ADF下的CPU電子錢包文件的地址;根據(jù)查找得到的CPU電子錢包文件的地址和預(yù)先設(shè)定的CPU電子錢包的余額的偏 移量來計(jì)算用于存儲(chǔ)CPU電子錢包的余額的地址;將上述地址所指向的存儲(chǔ)區(qū)中的數(shù)據(jù)清空,然后將Ml電子錢包的余額寫入上述 地址所指向的存儲(chǔ)區(qū)中,作為CPU電子錢包的新的余額;或者,從預(yù)先約定的存儲(chǔ)空間中讀取CPU電子錢包的余額的地址;將上述地址所指向的存儲(chǔ)區(qū)中的數(shù)據(jù)清空,然后將Ml電子錢包的余額寫入上述 地址所指向的存儲(chǔ)區(qū)中,作為CPU電子錢包的新的余額;進(jìn)一步地,將CPU電子錢包的余額設(shè)置為與Ml電子錢包的余額一致,還包括更新 CPU電子錢包的交易明細(xì),具體方法為讀取CPU電子錢包的最后一條交易明細(xì)的具體時(shí)間;將Ml電子錢包的每條交易明細(xì)的時(shí)間與上述讀取得到的時(shí)間進(jìn)行比較;將Ml電子錢包的交易明細(xì)的時(shí)間在上述讀取得到的時(shí)間之后的所有交易明細(xì)追 加到CPU電子錢包的交易明細(xì)中;其中,交易明細(xì)具體為交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、交易日期和交易時(shí)間等;進(jìn)一步地,更新CPU電子錢包的交易明細(xì)之后,還包括根據(jù)追加到CPU電子錢包的交易明細(xì)中的Ml電子錢包的交易明細(xì)的條數(shù),相應(yīng)地 將CPU電子錢包的脫機(jī)交易序號(hào)加上相應(yīng)的值,其中該相應(yīng)的值與上述條數(shù)相同,如追加 到CPU電子錢包的交易明細(xì)中的Ml電子錢包的交易明細(xì)的條數(shù)為3,則相應(yīng)地將CPU電子 錢包的脫機(jī)交易序號(hào)加3。步驟108 將Ml電子錢包的余額設(shè)置為與CPU電子錢包的余額一致,然后執(zhí)行步 驟 109 ;在本實(shí)施例步驟108中,將Ml電子錢包的余額設(shè)置為與CPU電子錢包的余額一致 的方法具體為根據(jù)預(yù)先約定的扇區(qū)號(hào),調(diào)用API接口函數(shù)extern WORDGetMifareSectorPasswo rd(BYTE*secPwdBuf, BYTE blockNo)來獲取 Ml 的扇區(qū)密鑰;調(diào)用 API 接 口 函數(shù) extern BYTE SetMifarePurseBalance (BYTE^balanceBuf),并 利用獲得的Ml的扇區(qū)密鑰來設(shè)置Ml電子錢包的余額,即將Ml電子錢包的余額設(shè)置為與 CPU電子錢包的余額一致;其中,將Ml電子錢包的余額設(shè)置為與CPU電子錢包的余額一致,還包括更新Ml 電子錢包的交易明細(xì),具體方法為讀取Ml電子錢包的最后一條交易明細(xì)的具體時(shí)間;將CPU電子錢包的每條交易明細(xì)的時(shí)間與上述讀取得到的時(shí)間進(jìn)行比較;將CPU電子錢包的交易明細(xì)的時(shí)間在上述讀取得到的時(shí)間之后的所有交易明細(xì) 追加到Ml電子錢包的交易明細(xì)中;其中,交易明細(xì)具體為交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、交易日期和交易時(shí) 間等;進(jìn)一步地,更新Ml電子錢包的交易明細(xì)之后,還包括根據(jù)追加到Ml電子錢包的交易明細(xì)中的CPU電子錢包的交易明細(xì)的條數(shù),相應(yīng)地 將Ml電子錢包的脫機(jī)交易序號(hào)加上相應(yīng)的值,其中該相應(yīng)的值與上述條數(shù)相同,如追加到 Ml電子錢包的交易明細(xì)中的CPU電子錢包的交易明細(xì)的條數(shù)為1,則相應(yīng)地將Ml電子錢包 的脫機(jī)交易序號(hào)加1。步驟109 判斷是否接收到尋卡的命令,若否,則繼續(xù)等待接收命令并進(jìn)行判斷,若是,則執(zhí)行步驟110;步驟110 接收喚醒命令WUPA和請求命令REQA ;步驟111 返回應(yīng)答命令A(yù)TQA,再進(jìn)行防沖撞處理ANTIC0L,然后接收選擇命令SELECT ;步驟112 發(fā)送選擇確認(rèn) SAK(MIFARE enabled);步驟113 接收到非接觸式的數(shù)據(jù)幀CL (contactless) Frame ;步驟114 判斷是否有選擇應(yīng)答請求命令RATS Ccommand,若否,則執(zhí)行步驟115,若是,則執(zhí)行步驟116;步驟115 執(zhí)行Ml錢包應(yīng)用操作,直到掉電或是CPU卡離開終端的非接觸式感應(yīng) 區(qū);
步驟116 等待接收應(yīng)用命令,當(dāng)接收到的是圈存初始化命令I(lǐng)NITIALIZEFOR LOAD時(shí),則執(zhí)行步驟117,當(dāng)接收到的是消費(fèi)初始化命令I(lǐng)NITIALIZE F0RPURCHASE時(shí),則執(zhí) 行步驟132 ;在本實(shí)施例中,圈存初始化命令I(lǐng)NITIALIZE FOR LOAD用于初始化圈存交易。步驟117 讀取INITIALIZE FOR LOAD命令中包含的數(shù)據(jù)并保存;在本實(shí)施例中,INITIALIZE FOR LOAD命令中包含的數(shù)據(jù)具體為密鑰索引號(hào)、交易金額和終端機(jī)編號(hào)。步驟118 檢查自身是否支持INITIALIZE FOR LOAD命令中包含的密鑰索引號(hào),若 不支持,則執(zhí)行步驟119,若支持,則執(zhí)行步驟120 ;步驟119 返回狀態(tài)碼0x9403給終端,并終止執(zhí)行圈存初始化操作,然后返回到步 驟 116 ;步驟120 生成一個(gè)偽隨機(jī)數(shù)和一個(gè)過程密鑰,并利用該過程密鑰計(jì)算得到第一 報(bào)文鑒別碼MACl ;在本實(shí)施例中,過程密鑰是由密鑰DLK分散得到的;利用過程密鑰計(jì)算得到第一報(bào)文鑒別碼MACl的方法具體為將交易前的CPU電子錢包的余額、交易金額、交易類型標(biāo)識(shí)和終端機(jī)編號(hào)順序鏈 接,再利用過程密鑰對(duì)鏈接后的數(shù)據(jù)進(jìn)行加密,得到的加密后的數(shù)據(jù)的前四個(gè)字節(jié)即為 MACl。步驟121 將INITIALIZE FOR LOAD響應(yīng)報(bào)文返回給終端;其中,INITIALIZEFOR LOAD 響應(yīng)報(bào)文由 Data+swl+sw2 組成;只有當(dāng)INITIALIZE FOR LOAD響應(yīng)報(bào)文中的狀態(tài)碼swl和sw2為‘9000,時(shí),則 INITIALIZE FOR LOAD命令執(zhí)行成功,INITIALIZE FOR LOAD響應(yīng)報(bào)文數(shù)據(jù)域Data中包含 的數(shù)據(jù)有交易前的CPU電子錢包的余額、CPU錢包的聯(lián)機(jī)交易序號(hào)、密鑰版本號(hào)、算法標(biāo)識(shí)、 偽隨機(jī)數(shù)和MAC1,若命令執(zhí)行不成功,則返回給終端的INITIALIZE FOR LOAD響應(yīng)報(bào)文中只 含有狀態(tài)碼swl和sw2,且狀態(tài)碼swl和sw2不為‘9000’。步驟122 接收終端發(fā)送的圈存命令CREDIT FOR LOAD,讀取CREDIT FOR LOAD命 令中的數(shù)據(jù)并保存;在本實(shí)施例中,圈存命令CREDIT FOR LOAD用于圈存交易;其中,CREDIT FOR LOAD命令中的數(shù)據(jù)具體為交易日期、交易時(shí)間和第二報(bào)文鑒別 碼 MAC2。步驟123 使用步驟120中生成的過程密鑰來驗(yàn)證上述MAC2是否有效,若無效,則 執(zhí)行步驟124,若有效,則執(zhí)行步驟125 ;在本實(shí)施例中,驗(yàn)證MAC2是否有效的方法,具體為將交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、交易日期和交易時(shí)間順序鏈接,然后使 用步驟120中生成的過程密鑰對(duì)鏈接得到的數(shù)據(jù)進(jìn)行加密,再比較加密后得到的數(shù)據(jù)的前 四個(gè)字節(jié)與CREDIT FOR LOAD命令數(shù)據(jù)域中的MAC2是否相同,若不相同,則MAC2無效,若 相同,則MAC2有效。步驟124 返回狀態(tài)碼0x9302給終端,提示MAC2無效,終止執(zhí)行圈存操作,然后返 回到步驟116 ;
步驟125 將CPU電子錢包的聯(lián)機(jī)交易序號(hào)加1,將交易金額加到CPU電子錢包的 余額上;在本實(shí)施例步驟125中,將交易金額加到CPU電子錢包的余額上的方法,具體為查找應(yīng)用文件ADF的地址;根據(jù)應(yīng)用文件ADF查找ADF下的CPU電子錢包文件的地址;根據(jù)查找得到的CPU電子錢包文件的地址和預(yù)先設(shè)定的CPU電子錢包的余額的偏移量來計(jì)算用于存儲(chǔ)CPU電子錢包的余額的地址;讀取上述計(jì)算得到的用于存儲(chǔ)CPU電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中 數(shù)據(jù),將交易金額與讀取得到的數(shù)據(jù)相加,并用相加得到的數(shù)據(jù)覆蓋上述計(jì)算得到的用于存儲(chǔ)CPU電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的數(shù)據(jù),將此相加得到的數(shù)據(jù)作為CPU 電子錢包新的余額。步驟126 更新CPU電子錢包的交易明細(xì);在本實(shí)施例中,需要更新的CPU電子錢包的交易明細(xì)具體為交易金額、交易類型標(biāo)識(shí)、終端編號(hào)、交易日期和交易時(shí)間,具體地,CPU卡將交易金額、交易類型標(biāo)識(shí)、終端編 號(hào)、交易日期和交易時(shí)間順序鏈接組成一個(gè)記錄以便更新。步驟127 獲得Ml的扇區(qū)密鑰;在本實(shí)施例中,預(yù)先約定存儲(chǔ)Ml電子錢包的余額的扇區(qū)號(hào)和塊號(hào),并根據(jù)該預(yù)先約定的扇區(qū)號(hào)來獲取Ml的扇區(qū)密鑰,其中獲得Ml的扇區(qū)密鑰的方法具體為調(diào)用API接口函數(shù) extern WORD GetMifareSectorPassword (BYTE^secPwdBuf, BYTE blockNo)來獲得Ml的扇區(qū)密鑰;步驟128 將Ml電子錢包的聯(lián)機(jī)交易序號(hào)加1,并更新Ml電子錢包的余額,即用步 驟125中更新后的CPU電子錢包的余額覆蓋Ml電子錢包的余額;在本實(shí)施例中,更新Ml電子錢包的余額的方法具體為調(diào)用API接口函數(shù)extern BYTE SetMifarePurseBalance (BYTE^balanceBuf),并利用獲得的扇區(qū)密鑰設(shè)置Ml電子錢 包的余額,即用步驟125中更新后的CPU電子錢包的余額覆蓋Ml電子錢包的余額;步驟129 更新Ml電子錢包的交易明細(xì);具體地,將步驟126中更新的后CPU電子錢包的交易明細(xì)追加到Ml電子錢包的交易明細(xì)中;交易明細(xì)具體為交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、交易日期和交易時(shí)間等。步驟130 用DTK左右8個(gè)字節(jié)進(jìn)行異或運(yùn)算,再利用異或運(yùn)算得到的結(jié)果計(jì)算交易驗(yàn)證碼TAC碼;在本實(shí)施例步驟130中,利用異或運(yùn)算得到的結(jié)果計(jì)算TAC碼,具體為將交易后的CPU電子錢包的余額或Ml電子錢包的余額、加1前的CPU卡的聯(lián)機(jī)交 易序號(hào)、交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、交易日期和交易時(shí)間順序鏈接,再利用異或運(yùn)算得到的結(jié)果對(duì)鏈接得到的數(shù)據(jù)進(jìn)行加密,得到的加密后的數(shù)據(jù)的前四個(gè)字節(jié)即為TAC碼。步驟131 返回CREDIT FOR LOAD命令的響應(yīng)報(bào)文給終端,交易結(jié)束,然后返回到步驟116,其中CREDIT FOR LOAD命令的響應(yīng)報(bào)文包含有TAC碼;步驟132 讀取消費(fèi)初始化命令I(lǐng)NITIALIZE FOR PURCHASE中的數(shù)據(jù)并保存;
在本實(shí)施例中,消費(fèi)初始化命令I(lǐng)NITIALIZE FOR PURCHASE用于初始化消費(fèi)交 易;并且INITIALIZE FOR PURCHASE命令中的數(shù)據(jù)具體為密鑰索引號(hào)、交易金額和終 端機(jī)編號(hào)。步驟133 檢查自身是否支持上述INITIALIZE FOR PURCHASE命令中包含的密鑰 索引號(hào),若不支持,則執(zhí)行步驟134,若支持,則執(zhí)行步驟135 ; 步驟134:返回狀態(tài)碼0x9403給終端,并終止執(zhí)行消費(fèi)初始化操作,然后返回到步 驟 116 ;步驟135 讀取CPU電子錢包的余額,判斷上述INITIALIZE FOR PURCHASE命令中 包含的交易金額的大小是否大于CPU電子錢包的余額的大小,若是,則執(zhí)行步驟136,若否, 則執(zhí)行步驟137 ;在本實(shí)施例步驟135中,讀取CPU電子錢包的余額的方法具體為查找應(yīng)用文件ADF的地址;應(yīng)用文件ADF根據(jù)查找ADF下的CPU電子錢包文件的地址;根據(jù)查找得到的CPU電子錢包文件的地址和預(yù)先設(shè)定的CPU電子錢包的余額的偏 移量來計(jì)算用于存儲(chǔ)CPU電子錢包的余額的地址;根據(jù)計(jì)算得到的用于存儲(chǔ)CPU電子錢包的余額的地址來讀取CPU電子錢包的余額。步驟136 返回狀態(tài)碼0x9401給終端,并終止執(zhí)行消費(fèi)初始化操作,然后返回到步 驟 116 ;步驟137 生成一個(gè)偽隨機(jī)數(shù)和一個(gè)過程密鑰;在本實(shí)施例中,過程密鑰用于CPU電子錢包或Ml電子錢包的消費(fèi)交易,過程密鑰 是用密鑰DPK分散得到的。步驟138 發(fā)送INITIALIZE FOR PURCHASE命令的響應(yīng)報(bào)文給終端;其中,INITIALIZEFOR PURCHASE 響應(yīng)報(bào)文由 Data+swl+sw2 組成;只有當(dāng)INITIALIZE FOR PURCHASE命令執(zhí)行成功時(shí),則CPU卡返回給終端的 INITIALIZE FOR PURCHASE 響應(yīng)報(bào)文中的狀態(tài)碼 swl 和 sw2 為 ‘9000,,且 INITIALIZE FOR PURCHASE響應(yīng)報(bào)文數(shù)據(jù)域Da ta中包含的數(shù)據(jù)具體為偽隨機(jī)數(shù)和CPU電子錢包的脫機(jī)交易 序號(hào),若命令執(zhí)行不成功,則CPU卡返回給終端的INITIALIZE FOR PURCHAS響應(yīng)報(bào)文中只 含有狀態(tài)碼swl和sw2,且狀態(tài)碼swl和sw2不為‘9000’。步驟139 接收終端發(fā)送的消費(fèi)命令DEBIT FOR PURCHASE WITHDRAW,讀取并保存 DEBIT FOR PURCHASE WITHDRAW 命令中的數(shù)據(jù);其中,DEBIT FOR PURCHASE WITHDRAW命令中的數(shù)據(jù)具體為終端交易序號(hào)、終端 的交易日期、終端的交易時(shí)間和第三鑒別碼MAC3。步驟140 使用步驟137中生成的過程密鑰來驗(yàn)證DEBIT FOR PURCHASEffITHDRAff 命令中包含的MAC3是否有效,若無效,則執(zhí)行步驟141,若有效,則執(zhí)行步驟142 ;在本實(shí)施例中,驗(yàn)證DEBIT FOR PURCHASE WITHDRAW命令中包含的MAC3是否有效 的方法,具體為 將交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、終端的交易日期和終端的交易時(shí)間順序鏈接,用步驟137中生成的過程密鑰對(duì)鏈接得到的數(shù)據(jù)進(jìn)行加密,再比較得到的加密后的 數(shù)據(jù)的前四個(gè)字節(jié)與DEBIT FOR PURCHASE WITHDRAW命令中包含的MAC3是否相同,若不相 同,則MAC3無效,若相同,則MAC3有效。步驟141 返回狀態(tài)碼0x9302給終端,終止交易,然后返回到步驟116 ;步驟142 將CPU電子錢包的脫機(jī)交易序號(hào)加1,并從CPU電子錢包的余額中扣減交易金額;在本實(shí)施例步驟142中,從CPU電子錢包的余額中扣減交易金額的方法,具體為查找應(yīng)用文件ADF的地址;根據(jù)應(yīng)用文件ADF查找ADF下的CPU電子錢包文件的地址;根據(jù)查找得到的CPU電子錢包文件的地址和預(yù)先設(shè)定的CPU電子錢包的余額的偏 移量來計(jì)算用于存儲(chǔ)CPU電子錢包的余額的地址;讀取上述計(jì)算得到的用于存儲(chǔ)CPU電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的 數(shù)據(jù),將讀取得到的數(shù)據(jù)減去交易金額,并用相減得到的數(shù)據(jù)覆蓋上述計(jì)算得到的用于存 儲(chǔ)CPU電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的數(shù)據(jù),將此相減得到的數(shù)據(jù)作為CPU電 子錢包新的余額。步驟143 更新CPU電子錢包的交易明細(xì);在本實(shí)施例中,需要更新的CPU電子錢包的相關(guān)交易明細(xì)具體為交易金額、交易 類型標(biāo)識(shí)、終端編號(hào)、交易日期和交易時(shí)間,具體地,CPU卡將交易金額、交易類型標(biāo)識(shí)、終端 編號(hào)、交易日期和交易時(shí)間順序鏈接組成一個(gè)記錄以便更新。步驟144 獲得Ml的扇區(qū)密鑰;在本實(shí)施例中,預(yù)先約定存儲(chǔ)Ml電子錢包的余額的扇區(qū)號(hào)和塊號(hào),并根據(jù)該預(yù)先 約定的扇區(qū)號(hào)來獲取Ml的扇區(qū)密鑰,其中獲得Ml的扇區(qū)密鑰的方法具體為調(diào)用API接口 函數(shù) extern WORD GetMifareSectorPassword (BYTE^secPwdBuf, BYTE blockNo)獲得 Ml 的 扇區(qū)密鑰。步驟145 將Ml電子錢包的脫機(jī)交易序號(hào)加1,并更新Ml電子錢包的余額,即用步 驟142中更新后的CPU電子錢包的余額覆蓋Ml電子錢包的余額;在本實(shí)施例中,更新Ml電子錢包的余額的方法具體為調(diào)用API接口函數(shù)extern BYTE SetMifarePurseBalance (BYTE^balanceBuf),并利用步驟314 中獲得的扇區(qū)密鑰設(shè)置 Ml電子錢包的余額,即用步驟142中更新后的CPU電子錢包的余額覆蓋Ml電子錢包的余 額;步驟146 更新Ml電子錢包的交易明細(xì);具體地,將步驟143中更新的CPU電子錢包的交易明細(xì)追加到Ml電子錢包的交易 明細(xì)中;交易明細(xì)具體為交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、交易日期和交易時(shí)間等。步驟147 生成第四報(bào)文鑒別碼MAC4 ;在本實(shí)施例中,生成第四報(bào)文鑒別碼MAC4方法具體為用步驟137中生成的過程密鑰對(duì)交易金額進(jìn)行加密,得到的加密后的數(shù)據(jù)的前四 個(gè)字節(jié)即為第四報(bào)文鑒別碼MAC4。步驟148 用DTK左右8個(gè)字節(jié)進(jìn)行異或運(yùn)算,并利用異或運(yùn)算得到的結(jié)果來計(jì)算交易驗(yàn)證碼TAC碼;在本實(shí)施例中,利用異或運(yùn)算得到的結(jié)果來計(jì)算TAC碼的方法具體為將交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、終端交易序號(hào)、終端的交易日期和終端的交易時(shí)間順序鏈接,并用異或運(yùn)算得到的結(jié)果對(duì)鏈接得到的數(shù)據(jù)進(jìn)行加密,得到的加密 后的數(shù)據(jù)的前四個(gè)字節(jié)即為TAC碼。步驟149 返回DEBIT FOR PURCHASE WITHDRAW命令的響應(yīng)報(bào)文給終端,交易結(jié)束, 然后返回到步驟116。其中,INITIALIZE FOR PURCHASE響應(yīng)報(bào)文中包含的數(shù)據(jù)有MAC2和TAC碼。本實(shí)施例提供了一種在CPU終端對(duì)CPU卡內(nèi)的CPU電子錢包和Ml電子錢包進(jìn)行 操作的方法,該方法中對(duì)CPU電子錢包和Ml電子錢包進(jìn)行同步,這樣就保證了 CPU電子錢 包和Ml電子錢包的余額的一致,就解決了用戶使用該CPU卡在Ml終端非法圈存和/或非 法消費(fèi)時(shí)而造成的CPU電子錢包和Ml電子錢包的余額的大小不一致的問題;并且在該方法 中當(dāng)接收到圈存命令時(shí),則CPU卡在CPU終端對(duì)CPU卡內(nèi)的CPU電子錢包和Ml電子錢包進(jìn) 行圈存,這樣就提高了圈存的安全性;并且在該方法中當(dāng)接收到消費(fèi)命令時(shí),則在CPU終端 使用CPU卡內(nèi)的CPU電子錢包和Ml電子錢包進(jìn)行消費(fèi),即從CPU電子錢包的余額中扣減相 應(yīng)的交易金額的同時(shí)也從Ml電子錢包的余額中也扣減相應(yīng)的交易金額。以上僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則 之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述方法包括CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),所述CPU卡上電并初始化;獲取第一電子錢包的余額;獲取第二電子錢包的余額;比較所述第一電子錢包和所述第二電子錢包的余額的大小;若所述第一電子錢包的余額小于所述第二電子錢包的余額,則將所述第二電子錢包的余額設(shè)置為與所述第一電子錢包的余額一致,并進(jìn)行尋卡操作;若所述第二電子錢包的余額小于所述第一電子錢包的余額,則將所述第一電子錢包的余額設(shè)置為與所述第二電子錢包的余額一致,并進(jìn)行尋卡操作;若所述第一電子錢包的余額與所述第二電子錢包的余額相等,則直接進(jìn)行尋卡操作。
2.如權(quán)利要求1所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述第一電子錢 包為基于邏輯加密芯片標(biāo)準(zhǔn)的金融應(yīng)用,并預(yù)先約定存儲(chǔ)區(qū)在CPU卡的邏輯加密卡區(qū)域中 的扇區(qū)號(hào)和塊號(hào),其中,所述存儲(chǔ)區(qū)用于存儲(chǔ)所述第一電子錢包的余額。
3.如權(quán)利要求2所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述獲取所述第 一電子錢包的余額的方法,具體為根據(jù)所述存儲(chǔ)第一電子錢包的余額的存儲(chǔ)區(qū)在CPU卡的邏輯加密卡區(qū)域中的扇區(qū)號(hào), 調(diào)用函數(shù)獲取所述第一電子錢包的扇區(qū)密鑰;根據(jù)所述獲取的扇區(qū)密鑰和存儲(chǔ)所述第一電子錢包的余額的存儲(chǔ)區(qū)在CPU卡的邏輯 加密卡區(qū)域中的塊號(hào),調(diào)用函數(shù)獲取所述第一電子錢包的余額。
4.如權(quán)利要求1所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述第二電子錢 包為使用ISO 14443接口協(xié)議實(shí)現(xiàn)的符合銀行標(biāo)準(zhǔn)的電子錢包。
5.如權(quán)利要求2所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述獲取第二電 子錢包的余額的方法,具體為查找應(yīng)用文件的地址;根據(jù)所述應(yīng)用文件查找所述應(yīng)用文件下的第二電子錢包文件的地址; 根據(jù)所述查找得到的第二電子錢包文件的地址和預(yù)先設(shè)定的第二電子錢包的余額的 偏移量來計(jì)算用于存儲(chǔ)所述第二電子錢包的余額的地址;根據(jù)所述計(jì)算得到的用于存儲(chǔ)所述第二電子錢包的余額的地址來讀取所述第二電子 錢包的余額; 或者,預(yù)先約定所述CPU卡內(nèi)的存儲(chǔ)空間中存儲(chǔ)所述第二電子錢包的余額的地址,從所述預(yù) 先約定的存儲(chǔ)空間中讀取用于存儲(chǔ)所述第二電子錢包的余額的地址; 根據(jù)所述讀取得到的地址來讀取所述第二電子錢包的余額。
6.如權(quán)利要求1所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述將第二電子 錢包的余額設(shè)置為與所述第一電子錢包的余額一致的方法,具體為查找應(yīng)用文件的地址;根據(jù)所述應(yīng)用文件查找所述應(yīng)用文件下的第二電子錢包文件的地址; 根據(jù)所述查找得到的第二電子錢包文件的地址和預(yù)先設(shè)定的第二電子錢包的余額的 偏移量計(jì)算用于存儲(chǔ)所述第二電子錢包的余額的地址;將所述計(jì)算得到的用于存儲(chǔ)所述第二電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的數(shù) 據(jù)清空,并將所述第一電子錢包的余額寫入所述計(jì)算得到的用于存儲(chǔ)所述第二電子錢包的 余額的地址所指向的存儲(chǔ)區(qū)中,作為所述第二電子錢包的新的余額;或者,從預(yù)先約定的存儲(chǔ)空間中讀取用于存儲(chǔ)所述第二電子錢包的余額的地址;將所述用于存儲(chǔ)第二電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的數(shù)據(jù)清空,并將第一 電子錢包的余額寫入所述用于存儲(chǔ)第二電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中,作為所 述第二電子錢包的新的余額。
7.如權(quán)利要求1所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述將第二電子 錢包的余額設(shè)置為與所述第一電子錢包的余額一致后,還包括更新所述第二電子錢包的交易明細(xì);根據(jù)所述更新的第二電子錢包的交易明細(xì)的條數(shù)將所述第二電子錢包的聯(lián)機(jī)交易序 號(hào)加上相應(yīng)的值,其中所述相應(yīng)的值與所述條數(shù)相同。
8.如權(quán)利要求1所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述將第一電子 錢包的余額設(shè)置為與所述第二電子錢包的余額一致的方法,具體為根據(jù)存儲(chǔ)所述第一電子錢包的余額的存儲(chǔ)區(qū)在CPU卡的邏輯加密卡區(qū)域中的扇區(qū)號(hào), 調(diào)用函數(shù)獲取所述第一電子錢包的扇區(qū)密鑰;根據(jù)所述獲取的扇區(qū)密鑰和存儲(chǔ)所述第一電子錢包的余額的存儲(chǔ)區(qū)在CPU卡的邏輯 加密卡區(qū)域中的塊號(hào),調(diào)用函數(shù)設(shè)置所述第一電子錢包的余額。
9.如權(quán)利要求1所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述將第一電子 錢包的余額設(shè)置為與所述第二電子錢包的余額一致之后,還包括更新所述第一電子錢包的交易明細(xì);根據(jù)所述更新的第一電子錢包的交易明細(xì)的條數(shù)將所述第一電子錢包的聯(lián)機(jī)交易序 號(hào)加上相應(yīng)的值,其中所述相應(yīng)的值與所述條數(shù)相同。
10.如權(quán)利要求1所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述進(jìn)行尋卡操 作具體為判斷是否接收到尋卡的命令,若否,則繼續(xù)等待接收尋卡的命令,若是,則接收喚醒命 令和請求命令;返回應(yīng)答命令,進(jìn)行防沖撞處理,并接收終端發(fā)來的選擇命令;執(zhí)行選擇命令,并發(fā)送確認(rèn)信息給終端;接收非接觸式的數(shù)據(jù)幀。
11.如權(quán)利要求1所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述進(jìn)行尋卡操 作之后,還包括判斷是否有選擇應(yīng)答請求命令,若是,則等待接收應(yīng)用命令,若否,則執(zhí)行第一電子錢 包應(yīng)用操作。
12.如權(quán)利要求11所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,當(dāng)接收到的所 述應(yīng)用命令是圈存初始化命令時(shí),所述方法還包括執(zhí)行圈存初始化操作,返回所述圈存初始化命令的響應(yīng)報(bào)文給終端;接收所述終端發(fā)送的圈存命令,對(duì)所述第二電子錢包進(jìn)行圈存,并更新所述第一電子錢包的余額,返回所述圈存命令的響應(yīng)報(bào)文給終端,圈存交易結(jié)束。
13.如權(quán)利要求12所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述執(zhí)行圈存 初始化操作的步驟,具體為讀取并保存所述圈存初始化命令中的數(shù)據(jù),其中所述數(shù)據(jù)包括密鑰索引號(hào)和交易金額;檢查自身是否支持所述密鑰索引號(hào);若不支持,則返回錯(cuò)誤信息給終端,終止執(zhí)行圈存初始化操作; 若支持,則生成一個(gè)偽隨機(jī)數(shù)和一個(gè)過程密鑰,并用所述過程密鑰計(jì)算得到第一報(bào)文 鑒別碼。
14.如權(quán)利要求12所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述對(duì)第二電 子錢包進(jìn)行圈存的步驟,具體為讀取并保存所述圈存命令中的數(shù)據(jù),其中,所述數(shù)據(jù)包含第二報(bào)文鑒別碼; 使用所述過程密鑰驗(yàn)證所述第二報(bào)文鑒別碼是否有效; 若無效,則返回所述第二報(bào)文鑒別碼無效的信息給終端,終止執(zhí)行圈存操作; 若有效,則將所述交易金額加到所述第二電子錢包的余額上。
15.如權(quán)利要求14所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述將交易金 額加到所述第二電子錢包的余額上的方法,具體為查找應(yīng)用文件的地址;根據(jù)所述應(yīng)用文件查找在所述應(yīng)用文件下的第二電子錢包文件的地址; 根據(jù)所述查找得到的第二電子錢包文件的地址和預(yù)先設(shè)定的第二電子錢包的余額的 偏移量計(jì)算用于存儲(chǔ)所述第二電子錢包的余額的地址;讀取所述計(jì)算得到的用于存儲(chǔ)所述第二電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的 數(shù)據(jù),將所述交易金額與所述讀取到的數(shù)據(jù)相加,用所述相加得到的數(shù)據(jù)覆蓋所述計(jì)算得 到的用于存儲(chǔ)所述第二電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的數(shù)據(jù),將所述相加得到 的數(shù)據(jù)作為所述第二電子錢包新的余額。
16.如權(quán)利要求14所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述將交易金 額加到所述第二電子錢包的余額上后,還包括將所述第二電子錢包的聯(lián)機(jī)交易序號(hào)加1 ; 更新所述第二電子錢包的交易明細(xì)。
17.如權(quán)利要求12所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述更新第一 電子錢包的余額,具體為將所述第一電子錢包的余額設(shè)置為與所述第二電子錢包的余額相 同,包括根據(jù)所述存儲(chǔ)第一電子錢包的余額的存儲(chǔ)區(qū)在CPU卡的邏輯加密卡區(qū)域中的扇區(qū)號(hào), 調(diào)用函數(shù)獲取所述第一電子錢包的扇區(qū)密鑰;根據(jù)所述存儲(chǔ)第一電子錢包的余額的存儲(chǔ)區(qū)在CPU卡的邏輯加密卡區(qū)域中的塊號(hào),以 及所述扇區(qū)密鑰,調(diào)用函數(shù)設(shè)置所述第一電子錢包的余額,即用所述更新后的第二電子錢 包的余額覆蓋所述第一電子錢包的余額。
18.如權(quán)利要求12所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述更新第一 電子錢包的余額后,還包括將所述第一電子錢包的聯(lián)機(jī)交易序號(hào)加1 ; 更新所述第一電子錢包的交易明細(xì)。
19.如權(quán)利要求11所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,當(dāng)接收到的所 述應(yīng)用命令是消費(fèi)初始化命令時(shí),所述方法還包括執(zhí)行消費(fèi)初始化操作,返回所述消費(fèi)初始化命令的響應(yīng)報(bào)文給終端; 接收所述終端發(fā)送的消費(fèi)命令,使用所述第二電子錢包進(jìn)行消費(fèi),并更新所述第一電 子錢包的余額,返回所述消費(fèi)命令的響應(yīng)報(bào)文給終端,消費(fèi)交易結(jié)束。
20.如權(quán)利要求19所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述執(zhí)行消費(fèi) 初始化操作的步驟,具體為讀取并保存所述消費(fèi)初始化命令中的數(shù)據(jù),其中,所述數(shù)據(jù)包括密鑰索引號(hào)和交易金額;檢查自身是否支持所述密鑰索引號(hào);若不支持,則返回錯(cuò)誤信息給終端,終止執(zhí)行消費(fèi)初始化操作; 若支持,則讀取所述第二電子錢包的余額,判斷所述數(shù)據(jù)中包含的交易金額是否大于 所述第二電子錢包的余額;若是,則返回錯(cuò)誤信息給終端,終止執(zhí)行消費(fèi)初始化操作; 若否,則生成一個(gè)偽隨機(jī)數(shù)和一個(gè)過程密鑰。
21.如權(quán)利要求20所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,讀取所述第二 電子錢包的余額的方法,具體為查找應(yīng)用文件的地址;根據(jù)所述應(yīng)用文件查找在所述應(yīng)用文件下的第二電子錢包文件的地址; 根據(jù)所述查找得到的第二電子錢包文件的地址和預(yù)先設(shè)定的第二電子錢包的余額的 偏移量計(jì)算用于存儲(chǔ)所述第二電子錢包的余額的地址;根據(jù)所述計(jì)算得到的用于存儲(chǔ)所述第二電子錢包的余額的地址讀取所述第二電子錢 包的余額。
22.如權(quán)利要求19所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述使用第二 電子錢包進(jìn)行消費(fèi)的步驟,具體為讀取并保存所述消費(fèi)交易命令中的數(shù)據(jù),其中,所述數(shù)據(jù)包含第三報(bào)文鑒別碼; 使用所述過程密鑰驗(yàn)證所述第一報(bào)文鑒別碼是否有效; 若無效,則返回所述第一報(bào)文鑒別碼無效的信息給終端,終止執(zhí)行消費(fèi)操作; 若有效,則從所述第二電子錢包的余額中扣減所述交易金額。
23.如權(quán)利要求22所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,從所述第二電 子錢包的余額中扣減所述交易金額的方法,具體為查找應(yīng)用文件的地址;根據(jù)所述應(yīng)用文件查找在所述應(yīng)用文件下的第二電子錢包文件的地址; 根據(jù)所述查找得到的第二電子錢包文件的地址和預(yù)先設(shè)定的第二電子錢包的余額的 偏移量來計(jì)算用于存儲(chǔ)所述第二電子錢包的余額的地址;讀取所述計(jì)算得到的用于存儲(chǔ)所述第二電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的 數(shù)據(jù),將所述讀取到的數(shù)據(jù)減去所述交易金額,用相減得到的數(shù)據(jù)覆蓋所述計(jì)算得到的用于存儲(chǔ)所述第二電子錢包的余額的地址所指向的存儲(chǔ)區(qū)中的數(shù)據(jù),將所述相減得到的數(shù)據(jù) 作為所述第二電子錢包新的余額。
24.如權(quán)利要求22所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,從所述第二電 子錢包的余額中扣減所述交易金額之后,所述方法還包括將所述第二電子錢包的脫機(jī)交易序號(hào)加1 ;更新所述第二電子錢包的交易明細(xì)。
25.如權(quán)利要求19所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述更新第一 電子錢包的余額,具體為將所述第一電子錢包的余額設(shè)置為與所述第二電子錢包的余額相 同,包括根據(jù)所述存儲(chǔ)第一電子錢包的余額的存儲(chǔ)區(qū)在CPU卡的邏輯加密卡區(qū)域中的扇區(qū)號(hào), 調(diào)用函數(shù)獲取所述第一電子錢包的扇區(qū)密鑰;根據(jù)所述存儲(chǔ)第一電子錢包的余額的存儲(chǔ)區(qū)在CPU卡的邏輯加密卡區(qū)域中的塊號(hào),以 及所述扇區(qū)密鑰,調(diào)用函數(shù)來設(shè)置所述第一電子錢包的余額,即用所述更新后的第二電子 錢包的余額覆蓋所述第一電子錢包的余額。
26.如權(quán)利要求19所述的對(duì)雙電子錢包進(jìn)行操作的方法,其特征在于,所述更新所述 第一電子錢包的余額之后,還包括將所述第一電子錢包的脫機(jī)交易序號(hào)加1 ;更新所述第一電子錢包的交易明細(xì)。
全文摘要
本發(fā)明公開了一種對(duì)雙電子錢包進(jìn)行操作的方法,涉及信息安全領(lǐng)域。所述方法包括CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),上電并初始化,分別獲取第一電子錢包和第二電子錢包的余額,比較第一電子錢包的余額與第二電子錢包的余額的大小,若第一電子錢包的余額小于第二電子錢包的余額,則將第二電子錢包的余額設(shè)置為與第一電子錢包的余額一致,并進(jìn)行尋卡操作;若第二電子錢包的余額小于第一電子錢包的余額,則將第一電子錢包的余額設(shè)置為與第二電子錢包的余額一致,并進(jìn)行尋卡操作;若第一電子錢包的余額與第二電子錢包的余額相等,則進(jìn)行尋卡操作。
文檔編號(hào)G07F7/08GK101799955SQ20091023787
公開日2010年8月11日 申請日期2009年11月20日 優(yōu)先權(quán)日2009年11月20日
發(fā)明者于華章, 陸舟 申請人:北京飛天誠信科技有限公司