




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE6中郵儲IC卡系統(tǒng)改造工程數(shù)據(jù)準備子系統(tǒng)摘要金融IC卡應(yīng)用工程是防范銀行卡風險,推動產(chǎn)業(yè)升級,提升金融服務(wù),促進政府管理,惠及人民群眾的一項重大社會工程。在2023年3月中國人民銀行發(fā)布了《中國金融集成電路(IC)卡規(guī)范》(PBOC2.0),并在北京、上海、天津、青島、福州等地開始試點工作。2023年,央行又進一步完善了我國銀行IC卡發(fā)展規(guī)劃,鼓勵商業(yè)銀行發(fā)行基于電子錢包功能的IC卡。本文首先分析了國內(nèi)外銀行IC卡的發(fā)展現(xiàn)狀和存在的問題,然后介紹了一種現(xiàn)在國內(nèi)外正在研究開發(fā)的基于IC、磁條合一的卡產(chǎn)品——金融IC卡。在此基礎(chǔ)上,設(shè)計了這套金融IC卡系統(tǒng)。設(shè)計內(nèi)容主要包括IC卡前置子系統(tǒng)、數(shù)據(jù)準備子系統(tǒng)、IC卡管理子系統(tǒng)、渠道接入子系統(tǒng)、后臺接入子系統(tǒng)、監(jiān)控子系統(tǒng)、數(shù)據(jù)清理子系統(tǒng)及IC卡安全子系統(tǒng)。本論文主要討論的是數(shù)據(jù)準備子系統(tǒng)。該子系統(tǒng)利用了某公司TopSmartTeller開發(fā)工具,具有靈活、方便、易于維護的特點。主體設(shè)計部分基于Linux平臺,采用C語言、ProC和Oracle數(shù)據(jù)庫,主要實現(xiàn)數(shù)據(jù)的接收、數(shù)據(jù)的處理和生成制卡文件三大核心需求。本論文主要解決以下問題:1.對從第三方(安全中心)發(fā)來的證書文件的解密及生成制卡文件后的加密。2.定義發(fā)卡模板及套用發(fā)卡模板進行業(yè)務(wù)參數(shù)的填充。3.轉(zhuǎn)換后生成IC卡制卡文件。關(guān)鍵詞:IC卡,數(shù)據(jù)處理,制卡文件China'sPostalSavingsBankICCardSystemRenovationDataPreparationSubsystemAbstractFinancialICcardapplicationbankcardprojectisanimportantsocialprojectwhichcanpreventrisks,promoteindustrialupgrading,enhancefinancialservices,promotegovernanceandbenefitpeople.People'sBankofChinapromulgatedthe"Chinafinancialintegratedcircuit(IC)CardSpecification"(PBOC2.0)inMarch2023andbegantomakeexperimentsinBeijing,Shanghai,Tianjin,QingdaoandFuzhou.ThecentralbankimproveddevelopmentprogramofICcardinBankofChinaandencouragedcommercialbankstopublishICCardbasedonelectronicpursefunctions.ThisarticleanalyzesthedevelopmentofdomesticandforeignbanksICcardstatusandexistingproblems,andthenintroducedthefinancialICcardbasedonICandmagneticstripewhichisresearchedanddevelopedathomeandabroad.AfinancialICcardsystemisdesignedonthisbasis.Thisdesignincludespre-subsystem,datapreparationsubsystem,ICcardmanagementsubsystem,thechannelaccesssubsystem,backstageaccesssubsystem,controlsubsystem,datacleaningsubsystemandsecuritysubsystem.Thisessayfocusesonthedatapreparationsubsystem.DatapreparationsubsystemisdevelopedbyTopSmartTellerwhichisflexible,convenientandmaintainable.Thekeypartofthisdesign,whichisbasedonLinux,Clanguage,ProCandOracleDatabase,realizesdatareception,dataprocessingandcard-creatingfilesgenerating.Theproblemssettledinthisthesisareasfollowing:Decryptcertificatefromthethirdpart(Security2.Definecardtemplatesanddoparametersfillingaccordingtothiscardtemplates.3.Generatecard-creatingfilesafterconversion.Keywords:ICcard,DataProcessing,CardFileSystem目錄1緒論 PAGEREFToc294890993\h41.1項目來源 PAGEREFToc294890994\h41.2項目背景 PAGEREFToc294890995\h41.3國內(nèi)外在該方向的研究現(xiàn)狀及分析 PAGEREFToc294890996\h51.4使用的開發(fā)平臺 PAGEREFToc294890997\h52基礎(chǔ)知識 PAGEREFToc294890998\h72.1數(shù)據(jù)加密算法 PAGEREFToc294890999\h72.2認證中心 PAGEREFToc294891000\h72.3數(shù)據(jù)完整性 PAGEREFToc294891001\h73系統(tǒng)的分析與設(shè)計 PAGEREFToc294891002\h83.1系統(tǒng)邊界設(shè)計 PAGEREFToc294891003\h83.1.1本系統(tǒng)定位 PAGEREFToc294891004\h83.1.2系統(tǒng)關(guān)聯(lián)試圖 PAGEREFToc294891005\h93.2網(wǎng)絡(luò)拓撲圖 PAGEREFToc294891006\h93.3系統(tǒng)數(shù)據(jù)流圖 PAGEREFToc294891007\h103.4應(yīng)用架構(gòu)設(shè)計 PAGEREFToc294891008\h113.4.1應(yīng)用架構(gòu)設(shè)計概述 PAGEREFToc294891009\h113.4.2邏輯架構(gòu) PAGEREFToc294891010\h113.4.3功能需求與系統(tǒng)模塊對應(yīng)關(guān)系 PAGEREFToc294891011\h123.5IC卡數(shù)據(jù)準備子系統(tǒng)的功能模塊設(shè)計 PAGEREFToc294891012\h123.5.1邏輯結(jié)構(gòu) PAGEREFToc294891013\h123.5.2處理流程 PAGEREFToc294891014\h133.5.3運行設(shè)計 PAGEREFToc294891015\h173.5.4數(shù)據(jù)結(jié)構(gòu)設(shè)計 PAGEREFToc294891016\h193.6模塊采用的技術(shù)原理及與其余模塊間的組織架構(gòu) PAGEREFToc294891017\h263.7制卡文件生成模塊的具體設(shè)計 PAGEREFToc294891018\h273.7.1個人化文件格式接口的定義 PAGEREFToc294891019\h273.7.2主要代碼編寫流程 PAGEREFToc294891020\h313.7.3數(shù)據(jù)存儲傳輸安全 PAGEREFToc294891021\h313.7.4對數(shù)據(jù)庫的操作 PAGEREFToc294891022\h32結(jié)論 PAGEREFToc294891023\h34參考文獻 PAGEREFToc294891024\h36附錄1 PAGEREFToc294891025\h371緒論隨著國內(nèi)外金融IC卡業(yè)務(wù)的改革和發(fā)展,新型智能的IC卡技術(shù)越來越受到人們的關(guān)注。形成一套安全、便捷、可靠、實用的金融IC卡系統(tǒng)也越來越受到人們的重視。本文設(shè)計了一套基于IC、磁條合一的卡產(chǎn)品,該軟件系統(tǒng)將實現(xiàn)IC卡的發(fā)卡功能及基于小額支付賬戶的業(yè)務(wù)功能,從而有效的應(yīng)對各種金融客戶的各種需求,并在安全性方面做出了強有力的保證。可見,開發(fā)一套完善的金融IC卡系統(tǒng)具有重要的現(xiàn)實意義。1.1項目來源該項目為商業(yè)項目。1.2項目背景金融IC卡應(yīng)用工程是防范銀行卡風險,推動產(chǎn)業(yè)升級,提升金融服務(wù),促進政府管理,惠及人民群眾的一項重大社會工程。在2023年3月中國人民銀行發(fā)布了《中國金融集成電路(IC)卡規(guī)范》(PBOC2.0),并在北京、上海、天津、青島、福州等地開始試點工作。2023年,央行又進一步完善了我國銀行IC卡發(fā)展規(guī)劃,鼓勵商業(yè)銀行發(fā)行基于電子錢包功能的IC卡。按照人民銀行關(guān)于IC卡遷移的整體策略,中國工商銀行、中國農(nóng)業(yè)銀行、中國建設(shè)銀行等部分商業(yè)銀行和中國銀聯(lián)已經(jīng)率先啟動并正在逐步完成受理系統(tǒng)的改造,今年將逐步開展IC卡受理終端的布放工作。中國銀聯(lián)按照人民銀行的部署和要求,完成了跨行交換系統(tǒng)兼容PBOC2.0標準的技術(shù)改造。按照人民銀行關(guān)于IC卡遷移的整體策略,要求金融IC卡應(yīng)用工程的階段目標是:2023年底,國有商業(yè)銀行均發(fā)行金融IC卡,發(fā)卡量達到一定規(guī)模,主要城市一定數(shù)量商戶能夠受理金融IC卡,并完成30%的終端機具改造。2023年底,全國主要商業(yè)銀行均發(fā)行金融IC卡,發(fā)卡量在原有基礎(chǔ)上明顯增加,主要城市多數(shù)商戶能夠受理金融IC卡,并完成50%的終端機具改造,能在社保、交通、教育等領(lǐng)域廣泛應(yīng)用。根據(jù)金融IC卡工程行業(yè)拓展進度,爭取開始在衛(wèi)生、文化、旅游等領(lǐng)域使用。2023年,全國所有城市的商戶和公共應(yīng)用領(lǐng)域均能受理金融IC卡,大多數(shù)商業(yè)銀行具備發(fā)行金融IC卡的能力,已發(fā)金融IC卡實現(xiàn)全國聯(lián)網(wǎng)通用,初步形成金融IC卡的應(yīng)用規(guī)模和社會效益。因而,為拓展某商業(yè)銀行卡業(yè)務(wù)功能,提高風險防范能力,積極參與人民銀行組織的金融IC卡業(yè)務(wù)應(yīng)用推廣,經(jīng)某集團公司金融信息化工作組批準,啟動某商業(yè)銀行IC卡應(yīng)用工程。1.3國內(nèi)外在該方向的研究現(xiàn)狀及分析銀行IC卡最早于1985年出現(xiàn)在法國。1995年前后,IC卡在金融領(lǐng)域得到較普遍的應(yīng)用,當時主要以電子錢包等小額支付為主,除了在少數(shù)國家獲得局部成功外,在絕大部分地區(qū)的發(fā)展狀況不佳。2023年,國際卡組織調(diào)整了IC卡的發(fā)展重點,開始大力推廣借記/貸記卡的IC化,也就是所謂的EMV遷移。在我國,早在1994年就提出了“磁條卡與智能卡并用,逐步向智能卡過渡”的指導(dǎo)思想。2023年底,中國人民銀行在EMVv3.1.1規(guī)范的基礎(chǔ)上組織制定了《中國金融集成電路(IC)卡規(guī)范》(又稱PBOC1.0標準)。根據(jù)我國銀行卡芯片化計劃要求,人民銀行和中國銀聯(lián)2023年正式頒發(fā)了PBOC2.0,該規(guī)范補充完善電子錢包/存折應(yīng)用,增加了與EMV標準兼容的借/貸記應(yīng)用,增加非接觸式IC卡物理特性標準,增加電子錢包擴展應(yīng)用指南、借/貸記應(yīng)用個人化指南等內(nèi)容。1.4使用的開發(fā)平臺系統(tǒng)環(huán)境搭建:Linux,開發(fā)工具某公司TopSmartTeller開發(fā)工具、語言Linux平臺下的C和ProC編程、數(shù)據(jù)庫Oracle11g。如表1-1所示。表1.1軟件環(huán)境平臺說明操作系統(tǒng)Linux穩(wěn)定操作系統(tǒng)平臺支撐中間件Tuxedo10提供成熟完備的消息管理機制以及服務(wù)進程管理數(shù)據(jù)庫Oracle11g包括數(shù)據(jù)庫存儲、安全、備份文件系統(tǒng)XFS或JSF+LVM采用安全穩(wěn)定的文件系統(tǒng)是所有平臺的基礎(chǔ)開發(fā)工具TopSmartTeller編寫TOPSmartTeller腳本,腳本的格式,STScript的語法,變量,系統(tǒng)函數(shù);配置文件的內(nèi)容;客戶化函數(shù)庫等其他軟件工具,如表1-2所示。表1.2其他軟件工具各環(huán)境版本信息中間件名稱生產(chǎn)環(huán)境版本開發(fā)環(huán)境版本測試環(huán)境版本GCC操作系統(tǒng)默認版本操作系統(tǒng)默認版本操作系統(tǒng)默認版本VI操作系統(tǒng)默認版本操作系統(tǒng)默認版本操作系統(tǒng)默認版本JDK1.51.51.5ANSIC操作系統(tǒng)默認版本操作系統(tǒng)默認版本操作系統(tǒng)默認版本2基礎(chǔ)知識2.1數(shù)據(jù)加密算法數(shù)據(jù)加密算法(DataEncryptionAlgorithm,DEA)是一種對稱加密算法,很可能是使用最廣泛的密鑰系統(tǒng),特別是在保護金融數(shù)據(jù)的安全中,最初開發(fā)的DEA是嵌入硬件中的。通常,自動取款機(AutomatedTellerMachine,ATM)都使用DEA。它出自IBM的研究工作,IBM也曾對它擁有幾年的專利權(quán),但是在1983年已到期后,處于公有范圍中,允許在特定條件下可以免除專利使用費而使用。1977年被美國政府正式采納。數(shù)據(jù)加密標準DES:DES的原始思想可以參照二戰(zhàn)德國的恩格瑪機,其基本思想大致相同。傳統(tǒng)的密碼加密都是由古代的循環(huán)移位思想而來,恩格瑪機在這個基礎(chǔ)之上進行了擴散模糊。但是本質(zhì)原理都是一樣的。現(xiàn)代DES在二進制級別做著同樣的事:替代模糊,增加分析的難度。加密原理:DES使用一個56位的密鑰以及附加的8位奇偶校驗位,產(chǎn)生最大64位的分組大小。這是一個迭代的分組密碼,使用稱為Feistel的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換。DES使用16個循環(huán),使用異或,置換,代換,移位操作四種基本運算。2.2認證中心證明公鑰和其它相關(guān)信息同其擁有者相關(guān)聯(lián)的可信的第三方機構(gòu)。2.3數(shù)據(jù)完整性數(shù)據(jù)不受未經(jīng)許可的方法變更或破壞的屬性。3系統(tǒng)的分析與設(shè)計本章的編寫目的是遵循應(yīng)用軟件設(shè)計的基本原則并選擇合適的設(shè)計方法,對某銀行IC卡系統(tǒng)的總體框架進行描述,包括系統(tǒng)的劃分、各子系統(tǒng)及其組成模塊的功能、屬性及其相互間的接口關(guān)系,以及在進一步細化時所要考慮的性能、運行環(huán)境和安全性等諸方面的約束,同時對系統(tǒng)所包括的各子系統(tǒng)的邏輯架構(gòu)、模塊組成、模塊之間的關(guān)系、物理設(shè)計、內(nèi)部/外部數(shù)據(jù)結(jié)構(gòu)等進行深入展開,為后續(xù)各子系統(tǒng)的詳細設(shè)計提供設(shè)計基礎(chǔ)和依據(jù)。3.1系統(tǒng)邊界設(shè)計系統(tǒng)的邊界設(shè)計包括以下幾個內(nèi)容。3.1.1本系統(tǒng)定位IC卡系統(tǒng)是一個基于某商業(yè)銀行核心儲蓄系統(tǒng)的外掛系統(tǒng),借助某商業(yè)銀行儲蓄系統(tǒng)已有的賬戶管理服務(wù)、會計核算服務(wù)、資金清算服務(wù)、公共管理服務(wù)實現(xiàn)IC卡的發(fā)卡及IC卡相關(guān)業(yè)務(wù)的受理。基于以上系統(tǒng)定位,在系統(tǒng)建設(shè)中遵循以下原則:(1)IC卡系統(tǒng)不建設(shè)單獨的受理渠道,利用某商業(yè)銀行現(xiàn)有渠道開展業(yè)務(wù);(2)IC卡前置系統(tǒng)不單獨建立機構(gòu)信息、不進行機構(gòu)的權(quán)限管理;某商業(yè)銀行儲蓄系統(tǒng)每日日終將機構(gòu)的全量信息同步給IC卡前置系統(tǒng);(3)IC卡前置系統(tǒng)與某商業(yè)銀行儲蓄省中心采用總對分的連接方式,即IC卡前置系統(tǒng)直接與31個儲蓄省中心連接;并根據(jù)終端所在省將交易發(fā)往對應(yīng)的儲蓄受理省中心,對于跨省交易,受理某商業(yè)銀行儲蓄省中心通過儲蓄全國中心將交易發(fā)往相應(yīng)的省中心進行處理;(4)IC卡前置系統(tǒng)與包括儲蓄網(wǎng)點前置在內(nèi)的各渠道前置直連;(5)對于涉及小額支付賬戶的聯(lián)機交易,由渠道前置將交易發(fā)往IC卡前置系統(tǒng),由IC卡前置系統(tǒng)調(diào)用受理省儲蓄省中心的相應(yīng)接口進行處理,涉及跨省交易的由受理省省中心發(fā)給儲蓄全國中心,參照現(xiàn)有行內(nèi)跨省異地轉(zhuǎn)賬交易流程處理;對于傳統(tǒng)借記交易,渠道前置先發(fā)交易請求到IC卡前置系統(tǒng)進行驗證,IC卡前置返回驗證結(jié)果,若驗證通過,渠道前置將交易發(fā)往儲蓄省中心進行處理;(6)IC卡系統(tǒng)不建立單獨的憑證管理和尾箱管理,憑證管理及尾箱管理利用儲蓄系統(tǒng)現(xiàn)有的方式完成,IC卡系統(tǒng)調(diào)用儲蓄系統(tǒng)提供的相應(yīng)接口完成業(yè)務(wù)處理。3.1.2系統(tǒng)關(guān)聯(lián)試圖IC卡系統(tǒng)關(guān)聯(lián)試圖如圖3.1所示。圖3.1IC卡系統(tǒng)關(guān)聯(lián)試圖上圖描述了IC卡系統(tǒng)的組成及與關(guān)聯(lián)系統(tǒng)的關(guān)系,其中綠色為需要新建或改造的系統(tǒng)。IC卡系統(tǒng)由后臺接入子系統(tǒng)、監(jiān)控子系統(tǒng)、安全管理子系統(tǒng)、IC卡前置子系統(tǒng)、數(shù)據(jù)準備子系統(tǒng)、安全管理中心、數(shù)據(jù)清理子系統(tǒng)、渠道接入子系統(tǒng)、管理子系統(tǒng)、個人化發(fā)卡系統(tǒng)組成;其中安全管理中心及個人化發(fā)卡系統(tǒng)由其它廠商建設(shè)。3.2網(wǎng)絡(luò)拓撲圖網(wǎng)絡(luò)拓撲圖如圖3.2所示。全國中心系統(tǒng):包括IC卡交換前置、IC卡應(yīng)用系統(tǒng)、數(shù)據(jù)準備系統(tǒng)、管理終端服務(wù)器和安全管理中心。圖3.2網(wǎng)絡(luò)拓撲圖3.3系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖如圖3.3所示。圖3.3系統(tǒng)數(shù)據(jù)流圖上圖描述的是在交易過程中各個子系統(tǒng)之間及與外系統(tǒng)之間的數(shù)據(jù)流向,其中藍色箭頭顯示的是制卡的數(shù)據(jù)流向,綠色箭頭顯示是聯(lián)機交易的數(shù)據(jù)流向,流程說明如下:制卡數(shù)據(jù)流向:(1)業(yè)務(wù)管理人員通過控制臺進行卡片管理,添加新的卡品種、卡類別及制卡模版;(2)儲蓄系統(tǒng)生成卡的磁條信息并一文件的方式發(fā)送給后臺接入子系統(tǒng);(3)后臺接入子系統(tǒng)將磁條信息文件轉(zhuǎn)發(fā)給數(shù)據(jù)準備子系統(tǒng),并登記相應(yīng)的批處理任務(wù);(4)數(shù)據(jù)準備子系統(tǒng)訪問安全管理中心獲取密鑰及證書等信息,生成制卡文件;(5)數(shù)據(jù)準備子系統(tǒng)通過渠道接入子系統(tǒng)將制卡文件發(fā)往個人化發(fā)卡系統(tǒng);(6)個人化發(fā)卡系統(tǒng)收到制卡文件后進行相應(yīng)處理并完成制卡。3.4應(yīng)用架構(gòu)設(shè)計應(yīng)用架構(gòu)設(shè)計包括以下幾個內(nèi)容。3.4.1應(yīng)用架構(gòu)設(shè)計概述在軟件邏輯結(jié)構(gòu)設(shè)計中,針對IC卡系統(tǒng)所需要實現(xiàn)的業(yè)務(wù)、技術(shù)和管理方面的功能按照架構(gòu)層次進行了歸納,在系統(tǒng)劃分上需要遵循如下原則:(1)系統(tǒng)層次清晰,重用部分和擴展部分隔離,底層系統(tǒng)向上層系統(tǒng)提供服務(wù);(2)系統(tǒng)邏輯獨立,兼顧物理獨立,保證系統(tǒng)能夠靈活部署;(3)兼顧近期目標和遠期規(guī)劃,在符合整體系統(tǒng)規(guī)劃和趨勢的前提下,實現(xiàn)系統(tǒng)功能。3.4.2邏輯架構(gòu)按照系統(tǒng)所實現(xiàn)的業(yè)務(wù)功能、支撐業(yè)務(wù)功能而提供的技術(shù)功能以及管理上的要求,IC卡系統(tǒng)邏輯上可以分為:IC卡前置子系統(tǒng)、IC卡數(shù)據(jù)準備子系統(tǒng)、IC卡管理子系統(tǒng)、渠道接入子系統(tǒng)、后臺接入子系統(tǒng)、監(jiān)控子系統(tǒng)、數(shù)據(jù)清理子系統(tǒng)、IC卡安全子系統(tǒng)。其中,IC卡數(shù)據(jù)準備子系統(tǒng)主要負責在保證數(shù)據(jù)安全和私密性的前提下,對PBOC2.0借記IC卡個人化所需要的各種數(shù)據(jù)進行生成,轉(zhuǎn)換,替換和組合等操作,最終形成可以為個人化系統(tǒng)識別的個人化文件。包括數(shù)據(jù)域管理、模版管理、DGI(DataGroupInterface)數(shù)據(jù)分組管理、制卡文件生成四部分。3.4.3功能需求與系統(tǒng)模塊對應(yīng)關(guān)系功能需求與系統(tǒng)模塊對應(yīng)關(guān)系如表3.1所示。模塊名稱子模塊功能點編號功能點對應(yīng)設(shè)計功能模塊業(yè)務(wù)管理卡片管理IC-MNG-11制卡流程概述卡片管理IC-MNG-12卡產(chǎn)品定義IC-MNG-13個人化格式配置管理IC-MNG-14IC卡模板管理IC-MNG-15IC卡數(shù)據(jù)域管理IC-MNG-16DGI數(shù)據(jù)分組管理IC-MNG-17數(shù)據(jù)準備處理階段查詢IC-MNG-18數(shù)據(jù)準備文件補發(fā)表3.1功能需求與系統(tǒng)模塊對應(yīng)關(guān)系表3.5IC卡數(shù)據(jù)準備子系統(tǒng)的功能模塊設(shè)計IC卡數(shù)據(jù)準備子系統(tǒng)的功能模塊設(shè)計包括以下幾個方面。3.5.1邏輯結(jié)構(gòu)IC卡數(shù)據(jù)準備子系統(tǒng)邏輯結(jié)構(gòu),如圖3.4所示。圖3.4IC卡數(shù)據(jù)準備子系統(tǒng)邏輯結(jié)構(gòu)IC卡模板管理模塊由控制臺發(fā)起,包括模板信息維護以及模板TLV(TagLengthValue)配置,負責數(shù)據(jù)準備相關(guān)模板的維護以及模板與TLV數(shù)據(jù)域的關(guān)聯(lián)維護,生成制卡文件的過程中將使用此模塊中配置好的模板生成數(shù)據(jù)。IC卡數(shù)據(jù)域管理模塊由控制臺發(fā)起,負責維護與卡模板關(guān)聯(lián)的TLV數(shù)據(jù)域,包括數(shù)據(jù)域的增刪改查,TLV數(shù)據(jù)域根據(jù)銀聯(lián)規(guī)范配置,發(fā)卡行也可自行定制數(shù)據(jù)域,與客戶信息相關(guān)的數(shù)據(jù)域數(shù)據(jù)(磁條信息,姓名,卡號等)由儲蓄系統(tǒng)提供,與安全相關(guān)的數(shù)據(jù)域數(shù)據(jù)(公鑰等)由安全中心提供,與應(yīng)用相關(guān)數(shù)據(jù)域數(shù)據(jù)(AID等)由數(shù)據(jù)準備子系統(tǒng)提供。DGI數(shù)據(jù)分組管理模塊由控制臺發(fā)起,包括個人化格式配置信息維護以及個人化格式DGI配置維護,生成制卡文件的過程中將使用此分組數(shù)據(jù)將模板數(shù)據(jù)進行數(shù)據(jù)分組產(chǎn)生給個人化廠商的個人化文件。制卡文件生成模塊由后臺進程發(fā)起,負責根據(jù)儲蓄制卡文件,以上配置的數(shù)據(jù)準備模板以及向安全中心請求的證書生成個人化文件給個人化廠商。以上四個模塊均訪問數(shù)據(jù)準備數(shù)據(jù)庫,制卡文件生成模塊使用其他三個模塊配置的信息生成文件。3.5.2處理流程處理流程包括IC卡模板管理模塊、IC卡數(shù)據(jù)域管理模塊、DGI數(shù)據(jù)分組管理模塊、制卡文件生成模塊。1)IC卡模板管理模塊模板信息維護流程,如圖3.5所示。圖3.5IC卡模板管理模塊維護流程圖流程說明:(1)接收頁面發(fā)來的請求;(2)檢查操作員是否有執(zhí)行模板信息維護的權(quán)限,如沒有,返回錯誤信息至頁面并顯示;(3)更新IC卡模板表(增加刪除修改);(4)記錄交易流水表;(5)返回成功信息至頁面。模板TLV配置流程,如圖3.6所示。圖3.6模板TLV配置流程圖流程說明:(1)接收頁面發(fā)來的請求;(2)檢查操作員是否有執(zhí)行模板TLV配置的權(quán)限,如沒有,返回錯誤信息至頁面并顯示;(3)更新IC卡模板配置表(增加刪除修改);(4)記錄交易流水表;(5)返回成功信息至頁面。2)IC卡數(shù)據(jù)域管理模塊IC卡數(shù)據(jù)域管理模塊如圖3.7所示。圖3.7IC卡數(shù)據(jù)域管理模塊流程圖流程說明:(1)接收頁面發(fā)來的請求;(2)檢查操作員是否有執(zhí)行IC卡基礎(chǔ)域配置的權(quán)限,如沒有,返回錯誤信息至頁面并顯示;(3)更新IC卡基礎(chǔ)域配置表(增加刪除修改);(4)記錄交易流水表;(5)返回成功信息至頁面。3)DGI數(shù)據(jù)分組管理模塊個人化格式配置信息維護流程,如圖3.8所示。圖3.8個人化格式配置信息維護流程圖流程說明:(1)接收頁面發(fā)來的請求;(2)檢查操作員是否有執(zhí)行個人化格式配置信息維護的權(quán)限,如沒有,返回錯誤信息至頁面并顯示;(3)更新個人化格式配置表(增加刪除修改);(4)記錄交易流水表;(5)返回成功信息至頁面。個人化格式DGI配置維護流程,如圖3.9所示。圖3.9個人化格式DGI配置維護流程圖流程說明:(1)接收頁面發(fā)來的請求;(2)檢查操作員是否有執(zhí)行個人化格式DGI配置維護的權(quán)限,如沒有,返回錯誤信息至頁面并顯示;(3)更新個人化格式DGI配置表(增加刪除修改);(4)記錄交易流水表;(5)返回成功信息至頁面。4)制卡文件生成模塊制卡文件生成模塊如圖3.10所示。圖3.10制卡文件生成模塊流程圖流程說明:(1)掃描通知表,檢查是否有新文件;(2)如有新文件,取儲蓄制卡文件;(3)對儲蓄制卡文件使用KEK(儲蓄與數(shù)據(jù)準備同步密鑰)解密入庫;(4)向安全中心申請證書文件(申請證書文件明文,安全中心返回證書用KEK加密);(5)調(diào)用安全子系統(tǒng)將KEK加密的證書文件轉(zhuǎn)為TK加密證書;(6)調(diào)用安全子系統(tǒng)用磁道加密密鑰對磁道信息進行加密;(7)使用TK加密證書文件、儲蓄制卡文件解密后入庫的數(shù)據(jù)、根據(jù)模板生成的數(shù)據(jù)準備數(shù)據(jù)生成個人化文件;(8)調(diào)用安全子系統(tǒng)對文件哈希并用哈希加密密鑰對哈希值加密添加至文件尾;(9)傳輸個人化文件至個人化系統(tǒng),并返回掃描通知表。3.5.3運行設(shè)計IC卡數(shù)據(jù)準備子系統(tǒng)運行設(shè)計圖如圖3.11所示。圖3.11IC卡數(shù)據(jù)準備子系統(tǒng)運行設(shè)計圖數(shù)據(jù)準備運行分為兩部分,控制臺配置部分與IC卡系統(tǒng)后臺部分:控制臺配置部分:(1)IC卡數(shù)據(jù)域維護應(yīng)用增加IC卡數(shù)據(jù)域(根據(jù)銀聯(lián)規(guī)范);(2)IC卡模板維護應(yīng)用增加應(yīng)用模板;(3)IC卡模板維護應(yīng)用配置模板與IC卡數(shù)據(jù)域的關(guān)聯(lián)關(guān)系;(4)IC卡數(shù)據(jù)分組維護應(yīng)用增加DGI數(shù)據(jù)分組信息;(5)IC卡數(shù)據(jù)分組維護應(yīng)用增加DGI數(shù)據(jù)分組與IC卡數(shù)據(jù)域的關(guān)聯(lián)關(guān)系;IC卡系統(tǒng)后臺部分:(1)輪詢線程掃描通知表;(2)取儲蓄制卡文件至IC卡系統(tǒng)后臺;(3)解密入庫并調(diào)用生成個人化文件API;(4)生成個人化文件API向安全中心請求證書,安全中心返回證書文件;(5)調(diào)用安全子系統(tǒng)將KEK加密證書轉(zhuǎn)為TK加密證書(6)根據(jù)證書文件,WEB服務(wù)器應(yīng)用中的應(yīng)用配置以及入庫的儲蓄制卡文件生成給個人化系統(tǒng)的個人化文件;(7)將個人化文件傳輸至個人化系統(tǒng)。3.5.4數(shù)據(jù)結(jié)構(gòu)設(shè)計數(shù)據(jù)機構(gòu)設(shè)計包括數(shù)據(jù)關(guān)系視圖與定義的各種表結(jié)構(gòu)。表結(jié)構(gòu)包括:1)模板信息表TBLINFTEMPLATEID2)模板配置表TBLINFTEMPLATECHG3)個人化格式配置表TBLICFORMATCFG4)個人化格式DGI配置表TBLICDGICFG5)IC卡基礎(chǔ)域配置表TBLINFFLDID6)數(shù)據(jù)準備預(yù)處理表TBLDATCARDPROC7)BUF模板映射表TBLINFBUFTEMPLATEMAP8)BUF配置表TBLINFBUFCHG9)BUF字段表TBLINFBUFFLD10)BUF信息表TBLINFBUFID(1)數(shù)據(jù)關(guān)系視圖數(shù)據(jù)關(guān)系視圖如圖3.12所示。圖3.12IC卡數(shù)據(jù)準備子系統(tǒng)數(shù)據(jù)關(guān)系視圖(2)數(shù)據(jù)結(jié)構(gòu)1.模板信息表TBLINFTEMPLATEID,如表3.2所示。主鍵:TEMPLATEID2表3.2模板信息表字段名稱類型長度說明備注缺省值可空TEMPLATEID2VARCHAR27應(yīng)用模板編號NTEMPLATENAMEVARCHAR220模板名稱NTEMPLATEFLAGVARCHAR220模板屬性NRECUPDUSRIDCHAR10修改的用戶標識NRECUPDTSCHAR14修改時間NRECCRTTSCHAR14創(chuàng)建時間NRESERVEVARCHAR230保留NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3N2.模板配置表TBLINFTEMPLATECHG,如表3.3所示。主鍵:TEMPLATEID2,FLDID表3.3模板配置表字段名稱類型長度說明備注缺省值可空TEMPLATEID2VARCHAR27應(yīng)用模板編號NFLDIDCHAR4模板字段編號NFLDENCFLAGCHAR1加密標志0:不加密1:加密NFLDDFLVALFLAGCHAR1使用缺省值標志0:不使用1:使用NDFLVALVARCHAR2256缺省值NFLDNESTFLAGCHAR1嵌套域標志0:非嵌套1:嵌套NFLDUPFLAGCHAR1上級字段標志NUPFLDIDCHAR4上級字段編號NRECUPDUSRIDCHAR10修改的用戶標識NRECUPDTSCHAR14修改時間NRESERVEVARCHAR230保留NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3N3.個人化格式配置表TBLICFORMATCFG,如表3.4所示。主鍵:PERFORMATID表3.4個人化格式配置表字段名稱類型長度說明備注缺省值可空PERFORMATIDCHAR4個人格式編號NPERFORMATNMVARCHAR264名稱NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3NRECUPDUSRIDCHAR10修改的用戶標識NRECCRTTSCHAR14創(chuàng)建時間NRECUPDTSCHAR14修改時間N4.個人化格式DGI配置表TBLICDGICFG,如表3.5所示。主鍵:PERFORMATID,PERDGISEQ表3.5個人化格式DGI配置表字段名稱類型長度說明備注缺省值可空PERFORMATIDCHAR4個人格式編號NPERDGISEQINTEGERDGI順序號NDGITLVSEQINTEGERDGITLV序列號NFLDID3INTEGER字段IDNDGIFLDFLAGVARCHAR2100DGITLV字段標志NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3NRECUPDUSRIDCHAR10修改的用戶標識NRECCRTTSCHAR14創(chuàng)建時間NRECUPDTSCHAR14修改時間N5.IC卡基礎(chǔ)域配置表TBLINFFLDID,如表3.6所示。主鍵:FLDID2表3.6IC卡基礎(chǔ)域配置表字段名稱類型長度說明備注缺省值可空FLDID2CHAR4字段編號NFLDTAGCHAR4字段TagNFLDMAXLENNUMBER字段最大長度NFLDLENCHANGFLAGCHAR1長度可變標志0:不可變1:可變NFLDFORMNUMBER字段格式0:n(數(shù)字)1:cn(壓縮數(shù)字)2:b(二進制)3:an(字母數(shù)字)4:ans(特殊字母數(shù)字)5:var.(可變)NRECUPDUSRIDCHAR10修改的用戶標識NRECUPDTSCHAR14修改時間NRECCRTTSCHAR14創(chuàng)建時間NRESERVEVARCHAR230保留NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3N6.數(shù)據(jù)準備預(yù)處理表TBLDATCARDPROC,如表3.7所示。主鍵:CARDNO表3.7數(shù)據(jù)準備預(yù)處理表字段名稱類型長度說明備注可空CARDNOCHAR19卡號NCARDPROCFLAGNUMBER處理標志NCARDPRODUCTIDCHAR8卡產(chǎn)品代碼NCARDPRODIDCHAR4卡商編號NCARDISSSTYLECHAR1發(fā)卡方式NCUSTIDTYPECHAR2客戶證件類型01:身份證02:戶口簿03:軍人身份證件04:武裝警察身份證件05:港澳居民往來內(nèi)地通行證06:臺灣回鄉(xiāng)證07:本國護照08:外國護照09:臨時身份證10:軍人士兵證11:軍人文職干部證12:武警士兵證13:其他等。NCUSTIDCHAR30客戶證件號NCUSTNAMEVARCHAR264客戶姓名NCUSTADDRVARCHAR2128客戶地址NCUSTTELNOCHAR30客戶聯(lián)系NAPPLYDATECHAR8申請日期NENDDATECHAR8失效日期NSENDNUMNUMBER發(fā)卡次數(shù)NSERVIDCHAR3服務(wù)代碼NCARDCVVCHAR3CVVNCARDCVV2CHAR3CVV2NSECONDTRACKDATAVARCHAR240二磁道數(shù)據(jù)NSENDBRBRHCHAR8發(fā)卡網(wǎng)點NCARDPROCSTATCHAR2制卡狀態(tài)NRESERVEVARCHAR230保留NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3N7.BUF模板映射表TBLINFBUFTEMPLATEMAP,如表3.8所示。主鍵:BUFID3,TEMPLATEID表3.8BUF模板映射表字段名稱類型長度說明備注缺省值可空BUFID3NUMBERBUF編號NTEMPLATEIDNUMBER應(yīng)用模板編號NBUFFLDIDNUMBERBUF字段編號NFLDIDCHAR4模板字段編號NRECUPDUSRIDCHAR10修改的用戶標識NRECUPDTSCHAR14修改時間NRECCRTTSCHAR14創(chuàng)建時間NRESERVEVARCHAR214保留NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3N8.BUF配置表TBLINFBUFCHG,如表3.9所示。主鍵:BUFID2表3.9BUF配置表字段名稱類型長度說明備注缺省值可空BUFID2NUMBERBUF編號NBUFFLDSEQNUMBERBUF字段序號NBUFFLDIDNUMBERBUF字段編號NRECUPDUSRIDCHAR10修改的用戶標識NRECUPDTSCHAR14修改時間NRECCRTTSCHAR14創(chuàng)建時間NRESERVECHAR30保留NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3N9.BUF字段表TBLINFBUFFLD,如表3.10所示。主鍵:BUFFLDID表3.10BUF字段表字段名稱類型長度說明備注缺省值可空BUFFLDIDNUMBERBUF字段編號NBUFFLDNMVARCHAR2256BUF字段名稱NBUFFLDTYPENUMBERBUF字段類型NBUFFLDLENNUMBERBUF字段長度NRECUPDUSRIDCHAR10修改的用戶標識NRECUPDTSCHAR14修改時間NRECCRTTSCHAR14創(chuàng)建時間NRESERVEVARCHAR230保留NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留310.BUF信息表TBLINFBUFID,如表3.11所示。主鍵:BUFID表3.11BUF信息表字段名稱類型長度說明備注缺省值可空BUFIDNUMBERBUF編號NBUFNAMEVARCHAR2256BUF名稱NRECUPDUSRIDCHAR10修改的用戶標識NRECUPDTSCHAR14修改時間NRECCRTTSCHAR14創(chuàng)建時間NRESERVEVARCHAR230保留NRESERVE1VARCHAR230保留1NRESERVE2VARCHAR260保留2NRESERVE3VARCHAR2100保留3N3.6模塊采用的技術(shù)原理及與其余模塊間的組織架構(gòu)IC卡模板管理模塊由控制臺發(fā)起,包括模板信息維護以及模板TLV配置,負責數(shù)據(jù)準備相關(guān)模板的維護以及模板與TLV數(shù)據(jù)域的關(guān)聯(lián)維護,生成制卡文件的過程中將使用此模塊中配置好的模板生成數(shù)據(jù)。IC卡數(shù)據(jù)域管理模塊由控制臺發(fā)起,負責維護與卡模板關(guān)聯(lián)的TLV數(shù)據(jù)域,包括數(shù)據(jù)域的增刪改查,TLV數(shù)據(jù)域根據(jù)銀聯(lián)規(guī)范配置,發(fā)卡行也可自行定制數(shù)據(jù)域,與客戶信息相關(guān)的數(shù)據(jù)域數(shù)據(jù)(磁條信息,姓名,卡號等)由儲蓄系統(tǒng)提供,與安全相關(guān)的數(shù)據(jù)域數(shù)據(jù)(公鑰等)由安全中心提供,與應(yīng)用相關(guān)數(shù)據(jù)域數(shù)據(jù)(AID等)由數(shù)據(jù)準備子系統(tǒng)提供。DGI數(shù)據(jù)分組管理模塊由控制臺發(fā)起,包括個人化格式配置信息維護以及個人化格式DGI配置維護,生成制卡文件的過程中將使用此分組數(shù)據(jù)將模板數(shù)據(jù)進行數(shù)據(jù)分組產(chǎn)生給個人化廠商的個人化文件。制卡文件生成模塊由后臺進程發(fā)起,負責根據(jù)儲蓄制卡文件,以上配置的數(shù)據(jù)準備模板以及向安全中心請求的證書生成個人化文件給個人化廠商。以上四個模塊均訪問數(shù)據(jù)準備數(shù)據(jù)庫,制卡文件生成模塊使用其他三個模塊配置的信息生成文件。3.7制卡文件生成模塊的具體設(shè)計制卡文件生成模塊就是使用TK加密證書文件、儲蓄制卡文件解密后入庫的數(shù)據(jù)、根據(jù)模板生成的數(shù)據(jù)準備數(shù)據(jù)來生成個人化文件。其中最關(guān)鍵的技術(shù)就是個人化文件格式接口的定義、數(shù)據(jù)庫的操作和與數(shù)據(jù)安全性相關(guān)的加密算法的應(yīng)用,它們直接關(guān)系到生成個人化文件的準確性、效率與安全性。3.7.1個人化文件格式接口的定義個人化文件格式接口規(guī)范如下。(1)文件格式:文件采用二進制數(shù)據(jù)方式,一批卡數(shù)據(jù)一個文件。(2)文件名規(guī)范:日期+卡種(8位)+機構(gòu)代碼(9位)+批次號。(3)文件構(gòu)成:如圖3.13所示。圖3.13文件構(gòu)成(4)文件具體格式說明1)一個文件包含一批卡數(shù)據(jù)2)每張卡數(shù)據(jù)包含3大部分數(shù)據(jù):卡面數(shù)據(jù)、磁條數(shù)據(jù)、IC卡數(shù)據(jù)3)IC卡數(shù)據(jù)必須支持多應(yīng)用4)每個應(yīng)用數(shù)據(jù)包含3大部分數(shù)據(jù):DGI分組數(shù)據(jù)、加密的DGI清單、日志DGI清單5)每一張卡數(shù)據(jù)必須帶MAC,MAC的計算方法為:將整張IC卡數(shù)據(jù)按照8字節(jié)分組,不足8字節(jié)的后補0,從第一個組開始,對下一個組進行異或,異或的結(jié)果再和下一個分組異或,直到和最后一個分組異或得到的值使用KEK進行ECB加密得到8個字節(jié)作為MAC值6)卡面數(shù)據(jù)、磁條數(shù)據(jù)、IC卡數(shù)據(jù)分別以“MIC+LEN+數(shù)據(jù)內(nèi)容”格式進行表示,MIC的定義為定長6個字節(jié)字符:(1)MIC=“xxxPRN”表示卡面數(shù)據(jù)(2)MIC=“xxxMAG”表示磁條數(shù)據(jù)(3)MIC=“xxxEMV”表示IC數(shù)據(jù)例如,在對模板數(shù)據(jù)初始化得過程中,對卡數(shù)據(jù)的3大部分數(shù)據(jù)的初始化為:/*填充卡面數(shù)據(jù)*/fprintf(fp,"%s","000PRN");cardlen+=6;miclenpos=ftell(fp);miclen=0;fwrite((char*)&miclen,sizeof(int),1,fp);cardlen+=4;rc=dpprngenerate(pDpManager,fp);if(rc<0){OlBatLog(OLBATTRACEERROR,"dpprngenerateerror%d\n",rc);return-1;}cardlen+=rc;miclen=dpintconv(rc);curpos=ftell(fp);fseek(fp,miclenpos,SEEKSET);//定位讀寫位置fwrite((char*)&miclen,sizeof(int),1,fp);fseek(fp,curpos,SEEKSET);/*填充磁條數(shù)據(jù)*/fprintf(fp,"%s","000MAG");cardlen+=6;miclenpos=ftell(fp);miclen=0;fwrite((char*)&miclen,sizeof(int),1,fp);cardlen+=4;rc=dpmaggenerate(pDpManager,fp);if(rc<0){OlBatLog(OLBATTRACEERROR,"dpmaggenerateerror%d\n",rc);return-1;}cardlen+=rc;miclen=dpintconv(rc);curpos=ftell(fp);fseek(fp,miclenpos,SEEKSET);//定位讀寫位置fwrite((char*)&miclen,sizeof(int),1,fp);fseek(fp,curpos,SEEKSET);/*填充IC數(shù)據(jù)*/fprintf(fp,"%s","000EMV");cardlen+=6;miclenpos=ftell(fp);miclen=0;fwrite((char*)&miclen,sizeof(int),1,fp);cardlen+=4;rc=dpicgenerate(pDpManager,kicid,fp);if(rc<0){OlBatLog(OLBATTRACEERROR,"dpicgenerateerror%d\n",rc);return-1;}cardlen+=rc;miclen=dpintconv(rc);curpos=ftell(fp);fseek(fp,miclenpos,SEEKSET);//定位讀寫位置fwrite((char*)&miclen,sizeof(int),1,fp);fseek(fp,curpos,SEEKSET);//定位讀寫位置fpend=ftell(fp);OlBatLog(OLBATTRACEERROR,"fpcardseq=[%d]end=[%d]",cardseqint,fpend);3.7.2主要代碼編寫流程生成個人化格式文件的代碼編寫流程:變量初始化、獲取批量信息參數(shù)、獲取批次詳細信息、生成個人化格式文件、更新制卡批次信息表、插入制卡批次信息表、插入批量請求信息表。其中最重要的是生成個人化格式文件這部分的代碼編寫。該部分獨立為一個函數(shù),名為genPerFile()。該函數(shù)的編寫流程是:變量初始化、獲取批量信息參數(shù)、內(nèi)存初始化、加載默認值、打開文件、取卡總數(shù)、寫文件頭、函數(shù)注冊、取卡余額上限、電子現(xiàn)金余額上限、取卡號、取卡的數(shù)據(jù)域。3.7.3數(shù)據(jù)存儲傳輸安全(1)傳輸交易信息時采用MAC認證來保證數(shù)據(jù)傳輸?shù)耐暾院丸b別消息來源,以保證數(shù)據(jù)傳輸?shù)目煽啃浴2捎妹绹鴩覙藴示止嫉男畔㈣b別碼(MAC)算法(ANSIX9.9)。在傳輸交易信息時交易的發(fā)起方根據(jù)交易信息生成信息鑒別碼MAC并隨交易信息發(fā)送到交易接受方,交易接受方對信息鑒別碼進行驗證,以保證信息傳輸?shù)目煽啃院屯暾裕⒋_認消息的正確來源,消息在各級的傳送過程中,每到一個節(jié)點都要鑒別MAC,然后重新計算MAC,放入待發(fā)送的消息。換言之,每一段通信線路上傳送的消息都將受到真?zhèn)蔚蔫b別。傳輸文件時采用MAC認證來保證數(shù)據(jù)傳輸?shù)耐暾浴2捎妹绹鴩覙藴示止嫉男畔㈣b別碼(MAC)算法(ANSIX9.9)。在傳輸文件時文件的發(fā)送方根據(jù)文件信息生成信息鑒別碼MAC并隨文件通知發(fā)送到接收方,接收方對信息鑒別碼進行驗證,以保證文件傳輸?shù)目煽啃院屯暾浴R虼耍瑢δ0鍞?shù)據(jù)進行個人化時,在卡數(shù)據(jù)后都添加了MAC:/*在卡數(shù)據(jù)后添加MAC*/fprintf(fp,"%s","FFFFFFFF");cardlen+=8;cardlen=dpintconv(cardlen);curpos=ftell(fp);fseek(fp,cardlenpos,SEEKSET);//定位讀寫位置fwrite((char*)&cardlen,sizeof(int),1,fp);fseek(fp,curpos,SEEKSET);//定位讀寫位置(2)數(shù)據(jù)準備系統(tǒng)對個人化文件哈希并使用文件哈希密鑰HK1生成密文,并添加至文件末尾:/*補寫Hash值*/rc=fflush(fp);OlBatLog(OLBATTRACEERROR,"fpfflushrc=[%d]",rc);memset(buf,0,sizeof(buf));fseek(fp,fpstart,SEEKSET);//定位讀寫位置OlBatLog(OLBATTRACEERROR,"fpcardseq=[%d]ftell=[%d]",cardseqint,ftell(fp));rc=fread(buf,1,fpend-fpstart,fp);OlBatLog(OLBATTRACEERROR,"fpcardseq=[%d]diff=[%d],rc=[%d]",cardseqint,fpend-fpstart,rc);SHAHash(buf,sShaBuf,fpend-fpstart);//對文件進行哈希的函數(shù)Trace(9,FILE,LINE,sShaBuf,20);//記錄日志的函數(shù)OlBatLog(OLBATTRACEERROR,"fpcardseq=[%d]hash=[%s]",cardseqint,sShaBuf);fseek(fp,fpend,SEEKSET);//定位讀寫位置fwrite(sShaBuf,sizeof(char),8,fp);3.7.4對數(shù)據(jù)庫的操作本系統(tǒng)對數(shù)據(jù)庫的操作都是利用在Pro*C程序中嵌入SQL語句,利用這些SQL語句完成動態(tài)的建立、修改和刪除數(shù)據(jù)庫中的表,查詢、插入、修改、刪除數(shù)據(jù)庫表中的行,實現(xiàn)事務(wù)的提交和回滾。例如,對表tblolbatreqdtl的操作。打開表:OpenCursorTBLOLBATREQDTL(){};提取表:FetchCursorTBLOLBATREQDTL(){};關(guān)閉表:CloseCursorTBLOLBATREQDTL(){};對表數(shù)據(jù)的操作:DbsTBLOLBATREQDTL(intifunc,tblolbatreqdtldef*pTBLOLBATREQDTL){……switch(ifunc){caseDBSINIT:……//初始化caseDBSSELECT:……//查詢caseDBSLOCK:……//鎖定caseDBSUPDATE:……//更新caseDBSDELETE:……//刪除caseDBSINSERT:……//插入default:return(543);}結(jié)論本論文分析了當前國內(nèi)外金融IC卡的發(fā)展現(xiàn)狀和研發(fā)智能IC卡的必要性,以及傳統(tǒng)磁條IC卡技術(shù)的局限性。為了突破這一不足,引入了智能IC卡這一先進技術(shù),設(shè)計了符合PBOC2.0標準的金融IC卡系統(tǒng)。該系統(tǒng)利用Linux平臺下的C語言編程及Proc編程,以O(shè)racle為數(shù)據(jù)庫,以Tuxedo為中間件而設(shè)計開發(fā)的新產(chǎn)品。本系統(tǒng)具有以下優(yōu)點:1.標準性:系統(tǒng)建設(shè)符合《中國金融集成電路(IC)卡規(guī)范》、《中國銀聯(lián)銀行卡聯(lián)網(wǎng)聯(lián)合技術(shù)規(guī)范》等規(guī)范的規(guī)定。實現(xiàn)報文格式接口、模塊交互接口、代碼信息的標準化,使交易的裝配更加容易,便于系統(tǒng)易維護,可移植,能擴展。2.先進性:系統(tǒng)采用符合信息技術(shù)發(fā)展趨勢的先進技術(shù)。軟件系統(tǒng)的選擇與開發(fā)在滿足業(yè)務(wù)需求的基礎(chǔ)上具有易改造、易升級、易操作、易維護等特點。3.可擴展性:在軟件設(shè)計方面考慮了未來業(yè)務(wù)發(fā)展和管理的需要,方便新業(yè)務(wù)和新需求的擴展和支持,滿足未來IC卡業(yè)務(wù)發(fā)展的需要。4.穩(wěn)定性:IC卡業(yè)務(wù)系統(tǒng)能確保系統(tǒng)平穩(wěn)運行,滿足高峰交易處理的需要。能適應(yīng)日終批處理、瞬間浪涌業(yè)務(wù)、報表集中生成等特殊情況。IC卡應(yīng)用工程的改造工作能充分考慮現(xiàn)有系統(tǒng)的穩(wěn)定性,對原生產(chǎn)系統(tǒng)的改造應(yīng)減少到最低限度。5.安全性:系統(tǒng)是建立在成熟穩(wěn)定的硬件環(huán)境和應(yīng)用軟件基礎(chǔ)上的,通過完善的備份恢復(fù)策略、安全控制機制、可靠的運行管理監(jiān)控和故障處理手段來保障系統(tǒng)的運行穩(wěn)定、安全。6.可維護性:系統(tǒng)的可維護性將決定系統(tǒng)的運行成本。在設(shè)計中應(yīng)充分考慮系統(tǒng)的運行監(jiān)控,提供方便靈活的管理手段和工具。存在以下局限性:1.該金融IC卡仍是基于IC、磁條二合一的卡產(chǎn)品,并非真正意義上的智能IC卡。在今后的研發(fā)方向上,要設(shè)計開發(fā)出純芯片控制的金融IC卡,使IC卡更加智能化,簡單化。2.生成個人化文件部分需要進一步完善和改進,特別是對卡片內(nèi)部風險管理數(shù)據(jù)的檢查需要優(yōu)化,模式匹配過程需要進一步提高實時性和準確性。3.在文件交互過程中,對數(shù)據(jù)的保密性上應(yīng)進一步改進和完善。應(yīng)探索出更加安全、穩(wěn)健的數(shù)據(jù)或文件加密算法來保證文件和數(shù)據(jù)在交互過程中的保密性。參考文獻[1]徐陽EMV遷移對中國銀行卡發(fā)展的影響及應(yīng)對策略[J].經(jīng)濟縱橫2023(5),91-94.[2]陳勇金融IC卡的專業(yè)應(yīng)用[J].中國信用卡2023,(6),64-67.[3]王金紅走進金融IC卡[J].西部金融2023,(5),82-82.[4]侯江濤建設(shè)銀行長沙地區(qū)金融IC卡方案[J].中國信用卡2023,(7),49-52.[5]唐劍冰,陳海斌推進廣西金融IC卡發(fā)展的思考[J].區(qū)域金融研究2023,(5),54-56.[6]陳勇金融IC卡的密鑰管理,中國信用卡[J]2023,(10),64-67.[7]鄭潔我國金融IC卡發(fā)展現(xiàn)狀探究[J],中國信用卡[J]2023,(18).54-58[8]張妙銀聯(lián)發(fā)力金融IC卡推廣[J].華南金融電腦2023,(7),13-15[9]李曉楓中國金融IC卡戰(zhàn)略的若干思考[J].中國防偽報道2023,(11).55-58[10]Sanchez-Reillo,R.AchievingSecurityInIntegratedCircuitCardApplicationsRealityOrDesire[J].SecurityTechnology2023,(35),197-201附錄1外文資料翻譯譯文:你的首個MFC應(yīng)用程序現(xiàn)在來建立你的首個MFC應(yīng)用程序。還有什么能比用一個顯示“你好,MFC”的窗體更適合作為開端呢?基于克尼漢·布萊恩和里奇·丹尼斯的《C程序設(shè)計語言》中的經(jīng)典不變的“Hello,World”項目,我稱這種極小的項目為“Hello”,包含了使用MFC編寫的應(yīng)用程序窗體,展示了基本原則。除此之外,你將親自見證MFC的CWinApp類和CFrameWnd類是如何獲得并插入到這個程序中的。你也將學到非常重要的CPaintDC類,在窗體中它充當著文本和圖形回應(yīng)WMPAINT消息的管道。最后,你將為它引入MFC消息影射機制,用以關(guān)聯(lián)準備辦理應(yīng)用程序和成員函數(shù)的那些消息。圖1-3列出了Hello的源代碼。Hello.h包含了兩個派生類的說明。Hello.cpp包含了那些類的具體實現(xiàn)方案。對于C++程序員而言,一般把類的定義寫在.h文件和.cpp文件中。在這本書里我們將貫徹這個優(yōu)良傳統(tǒng)。對于大型應(yīng)用程序,它可能包含數(shù)以十計或者可能數(shù)以百計的類,這樣也有利于從源代碼上分離類的聲明和實現(xiàn)。雖然在本書的前幾章中這樣是夸張的,但是以后當我們開始處理文檔和視圖時,我們將為每一個類寫一個特定的.h文件和.cpp文件。在書后面的CD中,你將在Chap01文件夾中找到Hello.h和Hello.cpp的復(fù)制品,還有一個文件夾包含了一個可執(zhí)行文件Hello.exe的副本。圖1-3TheHelloapplication.Hello.h:classCMyApp:publicCWinApp{public:virtualBOOLInitInstance();};classCMainWindow:publicCFrameWnd{public:CMainWindow();protected:afxmsgvoidOnPaint();DECLAREMESSAGEMAP()};Hello.cpp:#include<afxwin.h>#include"Hello.h"CMyAppmyApp;///////////////////////////////////////////////////////////////////////////CMyAppmemberfunctionsBOOLCMyApp::InitInstance(){mpMainWnd=newCMainWindow; mpMainWnd->ShowWindow(mnCmdShow);mpMainWnd->UpdateWindow();returnTRUE;}///////////////////////////////////////////////////////////////////////////CMainWindowmessagemapandmemberfunctionsBEGINMESSAGEMAP(CMainWindow,CFrameWnd)ONWMPAINT()ENDMESSAGEMAP()CMainWindow::CMainWindow(){Create(NULL,T("TheHelloApplication"));}voidCMainWindow::OnPaint(){CPaintDCdc(this);CRectrect;GetClientRect(&rect);dc.DrawText(T("Hello,MFC"),-1,&rect,DTSINGLELINE|DTCENTER|DTVCENTER);}圖1-4顯示了Hello的輸出。當你運行這個應(yīng)用程序時,注意這個窗體的功能完整性;你可以移動它,調(diào)整它的大小,最小化,最大化,關(guān)閉。當你調(diào)整它的大小時,“Hello,MFC”將重新出現(xiàn)在屏幕中心。大部分Hello的功能來自窗體。窗體,比如說,窗體的繪制外表,或者非工作區(qū)域:標題欄,標題欄的按鈕,窗體邊框。你有責任建立窗體并且處理指定的WMPAINT消息,全部或者部分的窗體內(nèi)置和工作區(qū)需要重置。讓我們通過查看源代碼來看看Hello是怎樣運轉(zhuǎn)的。圖1-4TheHellowindow.應(yīng)用程序?qū)ο驧FC應(yīng)用程序的核心基于CWinApp類。CWinApp類提供消息循環(huán)機制,檢索消息并發(fā)送到應(yīng)用程序窗口。它也包括關(guān)鍵的虛擬函數(shù),可以被用戶重寫到應(yīng)用程序行為中。當你引入頭文件Afxwin.h,CWinApp以及其他MFC類使你的應(yīng)用程序進入狀態(tài)。一個MFC應(yīng)用程序有且僅有一個應(yīng)用程序?qū)ο螅仨毴致暶鳎运鼘⒃趹?yīng)用程序開端實例化。Hello應(yīng)用程序?qū)ο蟊幻麨镃MyApp.通過這個聲明,它在Hello.cpp中實例化。CMyAppmyApp;CMyApp出現(xiàn)在Hello.h中的類聲明:classCMyApp:publicCWinApp{public:virtualBOOLInitInstance();};CmyApp類不聲明數(shù)據(jù)成員,僅重寫一個從CWinApp類繼承的函數(shù)。初始化實例于應(yīng)用程序使用初期被請求,就在應(yīng)用程序開始運轉(zhuǎn)之后,先于建立窗口。實際上,若不是初始化實例建立一個窗口,應(yīng)用程序就不會顯示窗口。這也就是為什么再小的MFC應(yīng)用程序都要從CWinApp類開始,并重寫CWinApp::InitInstance.初始化實例函數(shù)CWinApp::InitInstance是一個默認為僅包括一個語句聲明的虛擬函數(shù):returnTRUE;初始化實例的目的是為了提供一個初始化應(yīng)用程序本身的機會。初始化實例的返回值決定下一步執(zhí)行什么業(yè)務(wù)流程。初始化實例返回錯誤信息則關(guān)閉應(yīng)用程序。如果按計劃賦初值,初始化實例應(yīng)當返回真值以便允許程序運行。初始化實例是最佳的方式來執(zhí)行賦初值操作,這是因為每次程序啟動都要這樣做。至少,這意味著建立將在屏幕上描繪應(yīng)用程序的窗口。CMyApp類的初始化實力的實現(xiàn),例如出現(xiàn)在Hello.cpp中的,通過舉例說明Hello的CMainWindow類建立Hello窗口。這個聲明mpMainWnd=newCMainWindow;建立了一個CMainWindow對象并把它的地址復(fù)制到應(yīng)用程序?qū)ο蟮膍pMainWnd數(shù)據(jù)成員。窗口建好之后,初始化實例顯示——記住,一個窗口最初不是可見的,除非它通過一個WSVISIBLE屬性建立——通過CMainWindow指針調(diào)用ShowWindow和UpdateWindow:mpMainWnd->ShowWindow(mnCmdShow);mpMainWnd->UpdateWindow();ShowWindow和UpdateWindow是共享于所有窗口對象的CWnd成員函數(shù),包括擁有派生的CMainWindow的CFrameWnd類的對象。這些函數(shù)完全少于同名的API函數(shù)封裝器。從一個MFC程序調(diào)用一個合格的窗體API函數(shù),一般慣例是用全局作用域解析運算符::作為函數(shù)名開端,例如:::UpdateWindow(hwnd);通過這個符號,即便API函數(shù)調(diào)用擁有同名成員函數(shù)的對象,也可以確保無誤。本書其余部分中,窗口API函數(shù)將用::字符從MFC成員函數(shù)中區(qū)分出來.ShowWindow僅接受一個參數(shù):一個整形數(shù)據(jù)用來指定是否最初窗口最小化、最大化或者既非最小化也非最大化。依照窗口程序設(shè)計協(xié)議,Hello傳遞存儲了mnCmdShow變量的應(yīng)用程序?qū)ο骃howWindow,它負責把保留thenCmdShow參數(shù)傳到WinMain。mnCmdShow的數(shù)據(jù)通常是SWSHOWNORMAL,表明展示窗口的方式應(yīng)該聲明為標準的未最大化的和未最小化的。無論如何,取決于用戶啟動應(yīng)用程序,窗口偶爾就會悄悄地變成例如SWSHOWMAXIMIZED或SWSHOWMINIMIZED。除非有特定條件,否則初始化實例總是傳遞mnCmdShow變量,而不是把SW的值寫入ShowWindow。UpdateWindow完成強制刷新ShowWindow的使命。等它完成,初始化實例返回真值由此來允許應(yīng)用程序運行。其他的重寫CWinApp類初始化實例僅僅是你可重寫的少數(shù)幾個虛擬CWinApp類中的自定義應(yīng)用程序?qū)ο笮袨榈某蓡T函數(shù)中的一個。在你的MFC文件材料中查閱CWinApp重寫類,你將發(fā)現(xiàn)不少于一打的一串其他例如名為WinHelp和ProcessWndProcException的。這些函數(shù)多為很少用來重寫的,但是他們至少是觸手可及的。例如說,當你結(jié)束一個應(yīng)用程序時你可以用ExitInstance來清理數(shù)據(jù)。你可以用InitInstance來分配內(nèi)存或者其他資源,ExitInstance最適合釋放那些資源。ExitInstance的默認執(zhí)行一些瑣碎的日常清理,它需要通過業(yè)務(wù)框架,如果你重寫了ExitInstance,你無疑要調(diào)用基礎(chǔ)類。最后,ExitInstance的返回值是被WinMain送回來的退出代碼。其他值得關(guān)注的CWinApp重寫類有OnIdle,Run,和PreTranslateMessage。OnIdle適合除了瑣碎的后臺處理,比如,碎片帳集。由于OnIdle是在應(yīng)用程序空轉(zhuǎn)時調(diào)用的——就是說,當沒有消息等待處理時——它提供一個極好的低優(yōu)先級后臺任務(wù)執(zhí)行機制,它不需要大量單獨執(zhí)行。OnIdle在第十四章最后討論了。你可以重寫Run來自主重定義消息循環(huán)。如果你僅想執(zhí)行一些某些消息發(fā)送前的專門的預(yù)處理,你可以重寫PreTranslateMessage,并且是你免受寫一個全新的消息循環(huán)的麻煩。原文:YourFirstMFCApplicationIt'stimetobuildyourfirstMFCapplication.Andwhatbetterplacetostartthanwithonethatdisplays"Hello,MFC"inawindow?Basedontheclassic"Hello,world"programimmortalizedinBrianKernighanandDennisRitchie'sTheCProgrammingLanguage(1988,Prentice-Hall),thisveryminimalprogram,whichI'llcallHello,demonstratesthefundamentalprinciplesinvolvedinusingMFCtowriteaWindowsapplication.Amongotherthings,you'llgetaclose-uplookatMFC'sCWinAppandCFrameWndclassesandseefirsthandhowclassesarederivedfromthemandpluggedintotheapplication.You'llalsolearnabouttheall-importantCPaintDCclass,whichservesastheconduitthroughwhichtextandgraphicsaredrawninawindowinresponsetoWMPAINTmessages.Finally,you'llbeintroducedtomessagemapping,themechanismMFCusestocorrelatethemessagesyourapplicationreceiveswiththememberfunctionsyouprovidetohandlethosemessages.Figure1-3liststhesourcecodeforHello.Hello.hcontainsthedeclarationsfortwoderivedclasses.Hello.cppcontainstheimplementationsofthoseclasses.AmongC++programmers,it'straditionaltoputclassdefinitionsin.hfilesandsourcecodein.cppfiles.We'llhonorthattraditionhereandthroughouttherestofthisbook.Forlargeapplicationscontainingtensorperhapshundredsofclasses,it'salsobeneficialtoputclassdeclarationsandimplementationsinseparatesourcecodefiles.That'soverkillfortheprogramsinthefirstfewchaptersofthisbook,butlateron,whenwebeginworkingwithdocumentsandviews,we'llgiveeachclassitsown.hand.cppfiles.OntheCDinthebackofthebook,inthefoldernamedChap01,you
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州省安順市本年度(2025)小學一年級數(shù)學部編版隨堂測試(上學期)試卷及答案
- 2025-2030年中國數(shù)字助聽器行業(yè)運營狀況分析及市場前景咨詢報告
- 高中學生英語學期總結(jié)
- 金匱要略習題庫(含答案)
- 2025屆山東省青島市第一中學高三第一次模擬考試英語試卷含答案
- 個人理財業(yè)務(wù)考試模擬題與答案
- 職業(yè)技術(shù)學院2024級軟件技術(shù)專業(yè)人才培養(yǎng)方案
- 湖南省湘一名校聯(lián)盟2024-2025學年高二下學期期中聯(lián)考地理試卷(原卷版+解析版)
- 母嬰保健技術(shù)-終止妊娠理論考核試題
- 紡織品批發(fā)市場競爭力考核試卷
- 小紅書搜索推廣營銷師認證考試題庫(附答案)
- 《項目溝通管理培訓》課件
- 感染性疾病科各項規(guī)章制度及崗位職責
- 圍術(shù)期護理常規(guī)及技術(shù)規(guī)范
- 完整版《中藥學》課件
- 工程推動會監(jiān)理單位總監(jiān)辦發(fā)言稿
- 石家莊市既有建筑改造利用消防設(shè)計審查指南(2024年版)
- 船舶修造行業(yè)安全風險監(jiān)控與應(yīng)急措施
- 電信網(wǎng)絡(luò)維護與故障處理指南
- 2024高考物理一輪復(fù)習第63講光的波動性電磁波(練習)(學生版+解析)
- DB11T 065-2022 電氣防火檢測技術(shù)規(guī)范
評論
0/150
提交評論