<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

                  工廠(chǎng):河南省 鄭州市 高新區蓮花街電子電器產(chǎn)業(yè)園

                  IC卡技術(shù)講座之四 IC卡的編程和使用

                  文章出處:http://psychicreadingswithdeb.com 作者:&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年09月17日

                  [文章內容簡(jiǎn)介]:IC卡與其它卡片的區別主要是:IC 卡能在卡上存儲器中安全可靠地存儲大量有用信息,并且可以對數據提供多級安全保密措施.因此,為設計一個(gè)好的IC 卡應用系統,必須了解IC卡的數據結構特點(diǎn).掌握IC卡的編程和讀寫(xiě)方法.

                   IC卡與其它卡片的區別主要是:IC 卡能在卡上存儲器中安全可靠地存儲大量有用信息,并且可以對數據提供多級安全保密措施.因此,為設計一個(gè)好的IC 卡應用系統,必須了解IC卡的數據結構特點(diǎn).掌握IC卡的編程和讀寫(xiě)方法.
                      從使用角度來(lái)看,不管是普通存儲卡,邏輯加密卡,或智能CPU卡,卡上必定有:用于與其它應用系統相區別的發(fā)行商代碼, 用于與本系統中其他用戶(hù)相區別的個(gè)人代碼,用于控制對卡上數據修改的擦除密碼,以及用于存放數據的存儲區.由于IC 卡平時(shí)不與電源相接,要保證卡上存儲的數據不會(huì )丟失,只能使用只讀存儲器即ROM 型存儲器.因此卡上數據可以長(cháng)期保存,一般數據可存放100年.又由于IC卡上數據在使用中要經(jīng)常修改,故一般應該使用電可擦除可編程只讀存儲器,即EEPROM.一般IC 卡數據改寫(xiě)次數大于100000次.
                      目前的各種IC卡應用系統中使用的IC卡主要是邏輯加密型卡. 這種卡帶有多級密碼保護,比普通存儲卡安全性能強得多;同時(shí)又比智能CPU卡結構簡(jiǎn)單,不需要復雜的密碼計算過(guò)程,而且結構簡(jiǎn)單,編程使用方便.本講中以美國ATMEL公司的邏輯加密卡AT88SC1604為例,來(lái)說(shuō)明對IC卡應用系統中的IC 卡發(fā)行軟件和用戶(hù)應用軟件的編程方法,以及IC卡寫(xiě)入過(guò)程.
                      一.邏輯存儲卡的數據結構和編程特性
                      AT88SC1604卡具有一個(gè)公用區和四個(gè)應用數據區.其數據結構如附表所示.公用區內有廠(chǎng)商代碼,發(fā)行商代碼,總密碼,密碼計數器等等.我們可以規劃和利用這些數據區對全卡基本特性進(jìn)行控制.應用區共四個(gè),第個(gè)分區有自己的分區密碼, 擦除密碼,密碼計數器和讀寫(xiě)控制位,用于對本區內數據的寫(xiě)入,讀出和修改進(jìn)行控制.應用區其余部分是存儲數據的存儲單元.1604卡的第一分區存儲容量為9K位,其它三個(gè)分區數據存儲容量為2K位.連同公用區總存儲量為16K位.
                      廠(chǎng)商代碼又叫制造商代碼,是由IC卡制造商在卡出廠(chǎng)時(shí)寫(xiě)入.一般對某一發(fā)行商提供的一批卡提供同一代碼,以便與其它廠(chǎng)商的卡相區別. 寫(xiě)入時(shí)將相應保護熔絲1熔斷,此時(shí)IC卡開(kāi)發(fā)者可以讀出廠(chǎng)商代碼,判斷其生產(chǎn)廠(chǎng)商,但不能修改它.
                      發(fā)行商代碼:用于IC卡個(gè)人化,發(fā)卡時(shí)由系統軟件寫(xiě)入, 用來(lái)表明此卡屬于哪一應用系統.例如:工商行發(fā)行的金融IC卡寫(xiě)入的發(fā)行商代碼,表明了所屬的金融系統.此卡使用時(shí),ATM機會(huì )自動(dòng)核實(shí)這一代碼.如果不正確,說(shuō)明這不是本系統的卡,不能使用.發(fā)行商代碼受熔絲2控制,熔斷前,此密碼可修改,熔斷熔絲后.此密碼可讀出, 可核實(shí),但不能修改.
                      IC卡上的熔絲是IC卡個(gè)人化標記.除控制發(fā)行商代碼外,也控制整個(gè)卡上數據的讀寫(xiě).熔絲熔斷前,卡上數據讀寫(xiě)受總密碼SC和讀寫(xiě)控制位控制, 各分區密碼不起作用,此時(shí)可用IC卡讀寫(xiě)器對卡進(jìn)行初始數據的規劃和寫(xiě)入.熔絲熔斷后, 卡發(fā)給用戶(hù)個(gè)人,此時(shí)各分區數據操作不但受總密碼SC控制,而且受各分區密碼和擦除密碼和控制.
                      總密碼SC一般用作用戶(hù)密碼,應通過(guò)IC卡發(fā)行軟件中提供的用戶(hù)環(huán)境,由用戶(hù)自己設置并且寫(xiě)到卡上.此密碼一旦寫(xiě)入,不可讀出也不保留在系統中,只能核對.用戶(hù)在以后使用IC卡時(shí),可能通過(guò)由應用程序提供的密碼核對功能界面,由用戶(hù)本人鍵入加以核對.密碼輸入正確,說(shuō)明是合法用戶(hù),可以對卡上數據進(jìn)行讀寫(xiě).密碼輸入錯誤時(shí),密碼計數器SCAC減1.此外,在熔絲熔斷之前,總密碼還控制各分區密碼的讀寫(xiě).
                  密碼計數器SCAC用于統計用戶(hù)密碼核對次數.輸入正確密碼時(shí),計數器清零( 即8位全置-1-).每輸錯一次,計數器一位變?yōu)?0-,若八次輸入錯誤,計數器各位全變?yōu)?0-時(shí),則此卡已作廢.
                      擦除密碼控制對存儲器中已寫(xiě)數據的擦除.由于EEPROM 在寫(xiě)入數據時(shí)只能寫(xiě)入到空白區(即各位為-1-),對已寫(xiě)有數據的存儲區只能先探險,后寫(xiě)入.每次要擦除一行信息.擦除密碼在卡發(fā)行時(shí)寫(xiě)入,由應用系統控制,只能核實(shí),不能讀出以防止非法破壞卡上已有的數據.
                      各分區有自己的分區密碼,以便實(shí)現一卡多用.分區密碼和分區擦除密碼控制本區數據的讀,寫(xiě),擦操作.例如用一個(gè)1604卡兼工作證,醫療證,工資卡和就餐卡.在不同場(chǎng)合使用此卡時(shí)讀寫(xiě)器分別核實(shí)各分區密碼,僅操作本區數據,而不影響其它分區.
                   
                  存儲分區
                  位地址
                  位數
                  字節地址
                  字節數
                  FZ
                  廠(chǎng)方代碼區
                  0-15
                  16
                  0-1
                  2
                  IZ
                  發(fā)行商代碼
                  16-79
                  64
                  2-9
                  8
                  SC
                  總密碼
                  80-95
                  16
                  10-11
                  2
                  SCAC
                  總密碼錯誤計數器
                  96-103
                  8
                  12
                  1
                  CPZ
                  代碼保護區
                  104-167
                  64
                  13-20
                  8
                  SC1
                  一區密碼
                  168-183
                  16
                  21-22
                  2
                  S1AC
                  一區密碼錯誤計數器
                  184-191
                  8
                  23
                  1
                  EZ1
                  一區擦除密碼
                  192-207
                  16
                  24-25
                  2
                  E1AC
                  一區擦除密碼錯誤計數器
                  208-215
                  8
                  26
                  1
                  AZ1
                  應用區一
                  216-9775
                  9650
                  27-1221
                  1195
                  SC2
                  二區密碼
                  9776-9791
                  16
                  1222-1223
                  2
                  EZ2
                  二區擦除密碼
                  9792-9807
                  16
                  1224-1225
                  2
                  E2AC
                  二區擦除密碼錯誤計數器
                  9808-9815
                  8
                  1226
                  1
                  AZ2
                  應用區二
                  9816-11863
                  2048
                  1227-1482
                  256
                  SC3
                  三區密碼
                  11864-11879
                  16
                  1483-1484
                  2
                  EZ3
                  三區擦除密碼
                  11880-11895
                  16
                  1485-1486
                  2
                  E3AC
                  三區擦除密碼錯誤計數器
                  11896-11903
                  8
                  1487
                  1
                  AZ3
                  應用區三
                  11904-13951
                  2048
                  1488-1743
                  256
                  SC4
                  四區密碼
                  13952-13967
                  16
                  1744-1745
                  2
                  EZ4
                  四區擦除密碼
                  13968-13983
                  16
                  1746-1747
                  2
                  E4AC
                  四區擦除密碼錯誤計數器
                  13984-13991
                  8
                  1748
                  1
                  AZ4
                  應用區四
                  13992-16039
                  2048
                  1749-2004
                  256
                   
                  測試區
                  16040-16055
                  16
                  2005-2006
                  2
                   
                  合計
                   
                  16056
                   
                  2007


                      二.IC卡編程和使用流程
                  對IC卡的讀寫(xiě)操作主要在發(fā)卡時(shí)和用戶(hù)持卡交費及持卡消費時(shí)時(shí)行. 發(fā)卡是卡片發(fā)行者根據用戶(hù)要求對空白卡的個(gè)人化過(guò)程. 這一過(guò)程由發(fā)卡單位的微機上運行的發(fā)卡程序執行,如銀行,工廠(chǎng),機關(guān)等部.這一發(fā)卡程序也需IC卡開(kāi)發(fā)人員根據上述經(jīng)構特點(diǎn)進(jìn)行開(kāi)發(fā)設計.用戶(hù)持卡消費則在商店P(guān)OS機或銀行ATM機上進(jìn)行,持卡交費也需要在銀行或交費處進(jìn)行.這一過(guò)程是讀出或修改卡上數據的過(guò)程,由IC卡用戶(hù)應用程序在用戶(hù)終端上完成.此時(shí)用戶(hù)需與終端進(jìn)行交互式處理.這種用戶(hù)應用程序也是IC卡開(kāi)發(fā)人員進(jìn)行設計的.下面,綜合上一節討論的IC卡存儲結構特點(diǎn), 說(shuō)明在這兩種軟件中的操作過(guò)程.
                      1.IC卡個(gè)人化操作流程
                  如前所述,此流程嵌在IC卡發(fā)卡軟件中執行,可完成IC卡的人人化即初始數據錄入過(guò)程.首先系統核對IC卡的廠(chǎng)商代碼和卡型,正確時(shí),在空白卡上寫(xiě)入發(fā)行商代碼,確定此卡為本系統有效卡.然后軟件應提供交互式用戶(hù)界面, 讓用戶(hù)從鍵盤(pán)輸入自己的用戶(hù)密碼(SC).此密碼不應由發(fā)行者保留和處理,而應該通過(guò)調用密碼寫(xiě)入函數而直接寫(xiě)入卡上. 多分區中的分區密碼也可以通過(guò)給用戶(hù)提供的界面由用戶(hù)直接輸入.為了簡(jiǎn)化密碼記憶要求,也可以采用根據統一用戶(hù)密碼經(jīng)一定算法來(lái)分別產(chǎn)生分區密碼并寫(xiě)入卡上. 擦除密碼則是在個(gè)人化時(shí)由發(fā)行商也就是系統來(lái)產(chǎn)生并且入卡上的,供系統使用.在上述密碼寫(xiě)入后, 軟件還應提供用戶(hù)對密碼核實(shí)和再次修改的機會(huì ).在確認無(wú)誤后,軟件發(fā)出熔斷命令,熔斷熔絲2,完成IC卡的個(gè)人化進(jìn)程.隨后系統可對IC卡數據區需寫(xiě)入的數據作初始寫(xiě)入.
                      2.IC卡用戶(hù)應用軟件流程
                  如前所述,此流程嵌于各IC卡讀寫(xiě)終端的用戶(hù)軟件中.每次涉及對IC卡操作時(shí)執行此流程.一旦IC卡插入讀寫(xiě)器,用戶(hù)軟件首先應核對廠(chǎng)商代碼,發(fā)行商代碼,以確認此卡的合法性.在確定是本系統中的有效卡后,進(jìn)入用戶(hù)密碼核對流程, 如果是無(wú)效卡,應報警.接著(zhù)在用戶(hù)密碼核對界面中對持卡人的合法性進(jìn)行鑒別. 要求持卡人鍵入用戶(hù)密碼,與卡上密碼核對,無(wú)誤后可開(kāi)始對卡讀寫(xiě). 如有分區密碼也要求用戶(hù)鍵入核實(shí).如果需對卡上已有數據進(jìn)行修改,則應與系統中保留的探險密碼進(jìn)行核對. 正確時(shí)可先讀出卡上數據進(jìn)行修改運算,再擦除相應存儲區,最后將修改后數據寫(xiě)回該存儲區.根據以上敘述,我們知道IC卡的合法性, 持卡人合法性和系統的合法性要相互確認.這些確認和對IC卡的讀寫(xiě)操作均需調用隨IC 卡讀寫(xiě)器提供的函數庫中的函數來(lái)完成.
                      三.IC卡應用程序編程中使用的函數
                  如上所述:開(kāi)發(fā)IC卡應用系統的要點(diǎn)就是在一個(gè)數據庫管理軟件中,合理地嵌入和調用IC卡操作函數,來(lái)完成諸如合法性驗證和IC卡讀出,擦除和寫(xiě)入等操作.為此,我們需要了解由讀寫(xiě)器驅動(dòng)程序包中提供的IC止操作函數庫.這些函數可分為兩大類(lèi):在WINDOWS應用環(huán)境中,提供了一組動(dòng)態(tài)鏈接庫函數(.DLL文件)供各種程序調用. 在DOS 環(huán)境中, 則針對不同語(yǔ)言提供了各自的函數庫. 這時(shí)限于篇幅僅舉FOXPROFOR DOS中使用的部分函數加以說(shuō)明.詳細資料可查看相應手冊.
                  在FOXPRO程序執行前,執行命令:.SET LIBRARY TO MWIC.LIB
                  則FOXPRO會(huì )自動(dòng)登錄-MWIC.LIB-中的IC卡函數,以后可以像使用FOXPRO 內部函數一樣在程序使用中使用其中的接口函數.而在編譯用戶(hù)程序為.EXE文件時(shí),又要將-MWIC.LIB-鏈入即可執行.
                  MWIC.LIB中的接口函數可分兩類(lèi):
                  通用函數:用于各種卡型的基本操作.
                  1.MW-INITCOM() 初始化串行通迅口.
                  2.MW-SETTYPE() 設置卡型.
                  3.MW-READ() 讀卡上的數據.
                  4.MW-WRITE() 向卡上寫(xiě)入數據.
                  5.MW-ERASE() 擦除指定區域.
                  AT88SC1604卡專(zhuān)用函數:僅用于這種卡型,因為不同卡型中密碼的結構和位置不同.
                  1.MW-PASS16() 檢驗總密碼和擦除密碼
                  2.MW-CPASS16() 改變總密碼和擦除密碼
                  3.MW-RDECU16() 讀錯誤計數值
                  4.MW-FUSE16() 燒斷熔絲

                  本文關(guān)鍵詞:IC卡技術(shù),IC卡編程,IC卡數據結構,,C卡技術(shù),IC卡編程,IC卡數據結構,邏,卡技術(shù),IC卡編程,IC卡數據結構,邏輯,技術(shù),IC卡編程,IC卡數據結構,邏輯加,術(shù),IC卡編程,IC卡數據結構,邏輯加密,,IC卡編程,IC卡數據結構,邏輯加密型,IC卡編程,IC卡數據結構,邏輯加密型卡,C卡編程,IC卡數據結構,邏輯加密型卡,,卡編程,IC卡數據結構,邏輯加密型卡,A,編程,IC卡數據結構,邏輯加密型卡,AT,程,IC卡數據結構,邏輯加密型卡,AT8,,IC卡數據結構,邏輯加密型卡,AT88,I
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>