版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
引項(xiàng)目簡(jiǎn)種"云"中心、"云"節(jié)點(diǎn),解決數(shù)據(jù)的本地、網(wǎng)絡(luò)傳輸、認(rèn)證、數(shù)據(jù)完整項(xiàng)目需網(wǎng)點(diǎn)相完成點(diǎn)與點(diǎn)之間數(shù)據(jù)加密、消息加密(網(wǎng)點(diǎn)生命周期的管理)總行要驗(yàn)證分行的鑒別密鑰相(密鑰的生命周期管理)密鑰管理實(shí)時(shí)分發(fā)、、校驗(yàn)、服易用性(第信息系統(tǒng)和安全傳輸平臺(tái)解耦合保證修改的最少(第信息系統(tǒng)應(yīng)該和我們的平臺(tái)有效的解耦合)不業(yè)的特殊性需求加密強(qiáng)度(加密實(shí)時(shí)性安全相關(guān)基礎(chǔ)知Y=ax+b特點(diǎn):加密密鑰 密鑰一樣,密鑰分 優(yōu)點(diǎn):加密密鑰和密鑰不一樣,公鑰和私鑰;公鑰可以公開,密鑰錢是根子,密鑰是金融系統(tǒng)根數(shù)字和數(shù)字是用戶的網(wǎng)絡(luò),里面含有用戶信息、用戶的公鑰EKY是用戶的密鑰載體介質(zhì),里面用戶的私鑰Hash算法:對(duì)一批數(shù)據(jù),進(jìn)行運(yùn)算案例1:客戶端A和服務(wù)器B雙向認(rèn)AB服務(wù)器B識(shí)別客戶端A的流程為:A發(fā)送明文信息、對(duì)明文的簽名信息、自己的公鑰,將信息打包后,發(fā)送給B;B接受信息后,用A的公同理:客戶端A也可以驗(yàn)證服務(wù)器的項(xiàng)目的要項(xiàng)目課訓(xùn)練什1)服務(wù)框架搭建和業(yè)務(wù)流調(diào)試、開子系統(tǒng)的對(duì)接聯(lián)合調(diào)項(xiàng)目開發(fā)的經(jīng)歷是人生的一筆項(xiàng)目開發(fā)庫(kù)的積 項(xiàng)目課學(xué)員注2)部分學(xué)員,為實(shí)現(xiàn)某一個(gè)功能,把相關(guān)的知識(shí)體系,全復(fù)習(xí)、學(xué)遍;效正確的做法:迭發(fā),先出來一個(gè)模型,再說?。ǎ№?xiàng)目開發(fā)管理流參考常見項(xiàng)目開檔項(xiàng)目議,項(xiàng)目經(jīng)理需求和方項(xiàng)目討論會(huì),概要設(shè)計(jì)(子系統(tǒng)、模塊,數(shù)據(jù)庫(kù)、重要的流程圖)和詳測(cè)試(單元測(cè)試、對(duì)接安全傳輸平臺(tái)需求分需求轉(zhuǎn)化方案的思用戶的需求是什項(xiàng)目需求分網(wǎng)點(diǎn)相(網(wǎng)點(diǎn)生命周期的管理)總行要驗(yàn)證分行的鑒別密鑰相(密鑰的生命周期管理)密鑰管理實(shí)時(shí)分發(fā)、、校驗(yàn)、服易用性(第信息系統(tǒng)和安全傳輸平臺(tái)解耦合保證修改的最少(第信息系統(tǒng)應(yīng)該和我們的平臺(tái)有效的解耦合)不業(yè)的特殊性需求加密強(qiáng)度(加密實(shí)時(shí)性方案功能分方案演演示基礎(chǔ)組件:報(bào)文編碼組件、安全通信組件、數(shù)據(jù)庫(kù)統(tǒng)一接口組件演示linux:secmngserver和secmng演示 應(yīng)用:外聯(lián)接安全傳輸平臺(tái)總體設(shè)方案特兼容性:兼容各種硬件平臺(tái)、軟件平臺(tái)、設(shè)備方案架方案原第應(yīng)用app,通過外聯(lián)接口加密、數(shù)據(jù)linuxwin平臺(tái)應(yīng)用程序。密鑰協(xié)商客戶密鑰密鑰協(xié)商客戶密鑰協(xié)商客戶密鑰協(xié)商服務(wù)外聯(lián)應(yīng)外聯(lián)應(yīng)外聯(lián)接密鑰同步服務(wù)方案模塊關(guān)外聯(lián)接口外聯(lián)接口外聯(lián)接口統(tǒng)一安全統(tǒng)一安全通訊接 統(tǒng)一報(bào)文編 接 統(tǒng)一數(shù)據(jù) 接接密鑰更密鑰協(xié)商網(wǎng)點(diǎn)(子點(diǎn)密鑰申密鑰校密鑰協(xié)商請(qǐng)求模密鑰協(xié)商服務(wù)器(總點(diǎn)密鑰協(xié) 業(yè)密鑰協(xié)商服務(wù)模密鑰協(xié)商網(wǎng)點(diǎn)管操使用外聯(lián)接主流廠商硬 接各種國(guó)家安全規(guī)范標(biāo)準(zhǔn)CSP各種國(guó)家安全規(guī)范標(biāo)準(zhǔn)CSP主主流安全硬件廠商方案子系方案子系組件libicdbapi封裝procoracle數(shù)據(jù)3linux接口的封裝SocketApiLinuxWinsocketwinlinuxwinlinux接口的封裝12winlinux3winlinuxxmljsonhtmlDER接口的封裝統(tǒng)一共享內(nèi)存讀12winlinuxIPC(共享內(nèi)存、消接口的封裝密鑰協(xié)商服務(wù)程SecMngServer1linux23linuxLinux服務(wù)程密鑰協(xié)商客戶端 1linux2Win34linuxwinLinux信息系Win信息系密鑰協(xié)商服務(wù)配置管理終端1MFC2各種win3winlinux4winodbcWin信息系外聯(lián)接1接口設(shè)計(jì)與對(duì)稱密鑰加1使用第安全傳輸平臺(tái)數(shù)1sql2oracle3安全傳輸平臺(tái)sql的實(shí)信息系統(tǒng)數(shù)據(jù)庫(kù)解決方案SecMngServer總體流密鑰協(xié)商客戶密密鑰協(xié)商客戶密鑰協(xié)商服務(wù)數(shù)據(jù)寫數(shù)據(jù)Admin添加管網(wǎng)點(diǎn)信服務(wù)器共享內(nèi)客戶端享內(nèi)寫服務(wù)器共享存外聯(lián)應(yīng)外聯(lián)應(yīng)客戶端外接發(fā)起密鑰協(xié)商求讀配啟動(dòng)業(yè)務(wù)服務(wù)讀數(shù)據(jù)庫(kù)啟讀配共享內(nèi)外聯(lián)接外聯(lián)應(yīng)<流程名稱SecMngServerAdmin,添加網(wǎng)點(diǎn)信息,配置啟動(dòng)密鑰協(xié)商服務(wù)器(SecMngServer)服務(wù)程(SecMngClinet (AppInterface,平臺(tái)總流程平臺(tái)總流程外聯(lián)應(yīng)外聯(lián)接共享內(nèi)密鑰協(xié)商客戶密鑰協(xié)商服務(wù)數(shù)據(jù)配置終寫配置信寫網(wǎng)點(diǎn)信服務(wù)器享內(nèi)客戶端享內(nèi)寫共享內(nèi)外聯(lián)接服務(wù)外聯(lián)接客戶響應(yīng)連接寫享內(nèi)開端口氣啟服務(wù)讀配置文讀配置文發(fā)起密鑰請(qǐng)安全傳輸平安全傳輸平臺(tái)總業(yè)務(wù)外聯(lián)應(yīng)外聯(lián)接共享內(nèi)密鑰協(xié)商客戶密鑰協(xié)商服務(wù)數(shù)據(jù)密鑰協(xié)商服務(wù)器配終寫數(shù)據(jù)配的啟動(dòng)參寫數(shù)據(jù)配置網(wǎng)點(diǎn)信啟讀配置文啟動(dòng)服務(wù)共享內(nèi)寫服務(wù)器端共享內(nèi)發(fā)起密鑰協(xié)請(qǐng)共享內(nèi)總部應(yīng)外聯(lián)分部應(yīng)外寫客戶端的享內(nèi)讀配置文啟SecMngServer服客服客服客端應(yīng)用密鑰協(xié)顯示菜讀配置文啟動(dòng)業(yè)務(wù)線程提服開端口啟服務(wù)讀數(shù)據(jù)讀配置文錄入網(wǎng)點(diǎn)信配置服務(wù)器參數(shù)據(jù)密鑰協(xié)商服務(wù)密鑰協(xié)商客戶共享內(nèi)外聯(lián)接外聯(lián)應(yīng)<流程名稱 12)框架和業(yè)務(wù)流13)配置管理(MFC)1(MFC)1外聯(lián)接 14人+1學(xué)員產(chǎn)品成編號(hào)名稱平臺(tái)描 其軟件CommMsgEncodeDecode(linuxwin)共享內(nèi)存(win 安全傳輸平臺(tái)實(shí)報(bào)文編組件設(shè)計(jì)與實(shí)常見報(bào)文類超文本傳輸協(xié)超文本傳輸協(xié)議(HTTP,HyperTextTransferProtocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣目的是為了提供一種發(fā)布和接收HTML頁面的方法1960年人TedNelson構(gòu)了HTTP超文本傳輸協(xié)議標(biāo)準(zhǔn)架構(gòu)的發(fā)展根基。TedNelson組織協(xié)調(diào)網(wǎng)HTTP1.1RequestHTTP(請(qǐng)求)注:請(qǐng)求行和標(biāo)題必須以<CR><LF>作為結(jié)尾(也就是,回車然后換行??招袃?nèi)必須只有<CR><LF>HTTP/1.1協(xié)議中,所有的請(qǐng)求頭,除Host外,都是可選的。GET/User-Agent:Mozilla/5.0(Windows;U;WindowsNT6.0;en-US;rv:0) Accept-Language:en-us,en;q=0.5Keep-Alive:300If-Modified-SinceMon,25May200903:19:18GMTResponse格式:HTTPHTTP/1.1200Cache-Control:private,max-age=30Content-Encoding:gzipExpires:Mon,25May200903:20:33Last-Modified:Mon,25May200903:20:03GMTVary:Accept-Encoding -X-Powered-By:ASP.NETDate:Mon,25May200903:20:02-消息體的內(nèi)容(略文本標(biāo)記語言,即HTML(HypertextMarkupLanguage),是用于描述網(wǎng)頁HTML,HTML.htm.htmlTXTHTMLHTMLHTMLHTML23<title>namegoesVisibletextgoes<a /">Thisisa<ahref="http /"><imgsrc="URL"alt="AlternateText"></a><ahref="mailto:web ">Sende-mail</a>Anamed<aname="tips">UsefulTips<ahref="#tips">JumptotheUsefulTipsLanguageHTMLHTML頁面的方法。1960年人TedNelson構(gòu)思了一種通過計(jì)算機(jī)處理TedNelsonRFC2616HTTP1.1網(wǎng)(WorldWideWebConsortium)總結(jié):HTML是超文本標(biāo)記語言,HTTP是協(xié)議,HTMLHTTPXML報(bào)精簡(jiǎn)而來的一種通用標(biāo)注語言,主要是要簡(jiǎn)化SGML煩雜的結(jié)構(gòu),強(qiáng)化HTML過XML技術(shù)的推動(dòng)者之一,它希望能夠建立一WWW廣泛使用語言環(huán)境,推動(dòng)程序的兼容與協(xié)同,從而降低成本,XML創(chuàng)立之初只是被當(dāng)作一項(xiàng)基礎(chǔ)技術(shù),但其發(fā)展早已超出設(shè)計(jì)者原先的XML現(xiàn)在已經(jīng)成現(xiàn)有的XML主要應(yīng)用在四個(gè)方面:一是應(yīng)用于具有不同復(fù)雜格式的不同數(shù)據(jù)源需求選擇和制作不同的應(yīng)用程序以處理數(shù)據(jù),而服務(wù)器只需發(fā)出同一個(gè)XML文件;三是應(yīng)用于將同一數(shù)據(jù)以不同的形式表現(xiàn)出來;四是應(yīng)用于網(wǎng)絡(luò)對(duì)所取事實(shí)上,XML技術(shù)的潛能還遠(yuǎn)未被充分挖掘據(jù)一份的研究以XML為5102008年達(dá)到116億的營(yíng)業(yè)規(guī)模。以XML和Web服務(wù)為主的研究公司ZapThink在研究報(bào)告中也,這些以XML為基礎(chǔ)并包括Web服務(wù)的工具,是將舊有系統(tǒng)再處理器、XSLFO處理器、數(shù)據(jù)庫(kù)接受XML——不只如此,還有網(wǎng)絡(luò)瀏覽器也接受XMLXML工作小組創(chuàng)始會(huì)員C.M.Sperberg-McQueen如是認(rèn)為也正因?yàn)槿绱?,IBM、微軟、SUN、惠普、Oracle等大公司紛紛進(jìn)入這個(gè)市場(chǎng)。的軟件產(chǎn)品中充分利用了XML技術(shù)以程序關(guān)聯(lián)為特色的Office2003更是將XML<!DOCTYPEproject<!ENTITYCommonSYSTEMBouncyCastleBuildConfiguration(midp)ThisistheJDK1.1specificbuildfile.$RCSfile:jdk11.xml,v$Author:bouncy$Date:2005/07/0613:02:52$Revision:<projectname="jdk11"default="init"<!--Publiccallabletargets--<targetname="clean"depends="common-clean"<targetname="dist"depends="common-dist"<targetname="compile" pile"<!--includecommontargets,properties--<!--**Privateproperties-- patibility"<includename="java/**" <includename="org/**"<includename="javax/**"<includename="org/bouncycastle/crypto/**"<includename="org/bouncycastle/util/**"<includename="org/bouncycastle/asn1/**"<includename="org/bouncycastle/jce/**" <exclude<!--tomakethefrigginthingcompile--<property piler"value="classic"<path<pathelementlocation="${bcp}"<target pile" pile"<!--extratargetsusedinthisfile--<target pile"<echo patibility" patibility"<classpathrefid="compile.cp"<echomessage="orgbc.lw-source"<javacsrcdir="${master.src}"<classpathrefid="compile.cp"<target pile"if="is.jce"<!--cheatabitheretoremoveduplication--<antcall <paramname="is.lw"value="true"<!--nowdotheextrabitsfortheJCE--<echomessage="orgbc.jce-source"<javacsrcdir="${master.src}"<classpathrefid="compile.cp"<echo patibility" patibility"<classpathrefid="compile.cp"JSON,JavaScriptObjectNotationJavaScriptECMA-2623rdEdition-December1999要用于用于跟服務(wù)器進(jìn)行交換數(shù)據(jù)。跟XML相類似,它獨(dú)立于語言,在跨平臺(tái)數(shù)上面是百科的解釋,可以說明json大概的意思和作用,json其實(shí)就是鍵值對(duì)存vara={"one":"一","two":"二","three":"三"},a就是一個(gè)json,a.one的varb={"A":"[1,2,3,4,5,6,7]","B":"[a,b,c,d,e]"},b.A[0]json下標(biāo),json取鍵值對(duì)的名,使用起來很方便,數(shù)據(jù)格式簡(jiǎn)潔自定struct{charname[32];intage;chardesc[1024]char*p//32} ASN.1抽象語法標(biāo)記(SyntaxNotationOne)ASN.1ISO/ITU-ASN.1是描述在網(wǎng)絡(luò)上傳輸信息格式的標(biāo)準(zhǔn)方法。它有兩部分:一部分描述來是作為X.409的一部分而開發(fā)的后來才自己獨(dú)立成為一個(gè)標(biāo)準(zhǔn)ASN.1在OSIISO8824/ITUX.208(說明語法)ISO8825/ITUX.209(說明基本編碼規(guī)則)Report::=SEQUENCEauthorOCTETSTRING,titleOCTETSTRING,bodyOCTETSTRING,biblio}在這個(gè)例子中,"eportQE表示消CTGASN.1語法表示它的意義:Bibliography::=SEQUENCE{authorOCTETSTRINGtitleOCTETSTRINGpublisherOCTETSTRINGyearOCTETSTRING}ASN.1布爾型整型實(shí)型位串類型8(OCTET枚舉類型空類型對(duì)象標(biāo)識(shí)符(OBJECT除基本類型,ASN.1SEQUENCESEQUENCEOF:CCCASN.1編碼typedefstruct{typedefstruct{charname[64];intage;charintintintmywritefile(unsignedchar*buf,int{FILE*fp=if(fp==NULL){printf("fopenfileerror\n");return-1;}fwrite(buf,1,len,fp);return}intTeacherEncode(Teacher*pStuct,unsignedchar**out,int{}intTeacherDecode(unsignedchar*inData,intinLen,Teacher{報(bào)文編碼組件設(shè)計(jì)與實(shí)重點(diǎn):深入理解,報(bào)文編碼組件和業(yè)務(wù)流模塊的解耦統(tǒng)一報(bào)文編碼設(shè)計(jì)思統(tǒng)一報(bào)文編碼實(shí)APIAPI(keymng_msg.c編碼實(shí)現(xiàn)統(tǒng)一報(bào)文組件的業(yè)務(wù)流/linux#ifndef#define#ifdefcplusplusextern"C"{#ifndef#define#ifdefcplusplusextern"C"{typedefstruct{//1//2密鑰校驗(yàn)//3Id[12];// serverId[12];//I編號(hào) typedef { Id[12];//1//12//23//3; unsignedchar pstruct ;(指向相應(yīng)結(jié)構(gòu)體的指針type: 輸入的類型標(biāo)識(shí)(函數(shù)內(nèi)部通過type得到pstruct所指向的報(bào)文poutData:輸出的編碼后的報(bào)文;outlen: int *pStruct, unsignedchar **outData,/*out*/ *outLen); :輸入的編碼后的數(shù)據(jù); :輸入的數(shù)據(jù)長(zhǎng)度;pstruct:輸出的 :結(jié)構(gòu)的類型標(biāo)識(shí)(flag進(jìn)行判斷,pstruct轉(zhuǎn)換為相應(yīng)的結(jié)構(gòu))intunsignedchar*inData,/*in*/ **pStruct *typeMsgEncodeoutData;方法:MsgMem((void**)outData,0);釋放MsgDecode()函數(shù)中的pstruct結(jié)構(gòu)體,MsgMem((void**)outData,type:輸入?yún)?shù),便于函數(shù)判斷調(diào)用哪個(gè)結(jié)構(gòu)體 函int (void**point,int#ifdef}}統(tǒng)一報(bào)文編碼樣統(tǒng)一通訊組件設(shè)計(jì)與實(shí)統(tǒng)一通訊組件接口設(shè)Winlinux異構(gòu)、跨平臺(tái)連接的處理(短、長(zhǎng)連接)解決的問題:穩(wěn)定、易用;長(zhǎng)連接短,socket連接池;斷鏈修復(fù);跨平臺(tái);linux內(nèi)核的角度,理解三次握手和四次斷開(全雙工主動(dòng)套接字和套接字,accept的函長(zhǎng)連接和短實(shí)現(xiàn)的條5)socket連接池的設(shè)計(jì)理念統(tǒng)一通訊組件接口實(shí)#ifndef_poolsocket_H_#ifdefextern{#define0#define#define#define#defineSck_ErrPeerClosed #defineSck_ErrMalloc #define 創(chuàng)建連接池(沒有達(dá)到最大連接數(shù)#defineSck_Err_Pool_terminated (Sck_BaseErr+21)//已終止#defineSck_Err_Pool_GetConn_ValidIsZero (Sck_BaseErr+22)//有效連接數(shù)是#defineSck_Err_Pool_HaveExist (Sck_BaseErr+22)//連接已經(jīng)在池#defineSck_Err_Pool_ValidBounds (Sck_BaseErr+22)//有效連接數(shù)目//int //int _connect(char*ip,itport,itconne ,it//int _closeconn(int//int //int _rev(intconnfd,intrevtime,unsignedchar**out,int*outlen);//int Mem(void//inttypedefstruct { intserverport;intbounds池容量intconnecttime;intsendtime;intrevtime; //socketintsckCltPool_init(void**handle, //socketintsckCltPool_getConnet(void*handle,int//socketintsckCltPool_send(void*handle, unsignedchar*data,int//socket connfd,unsignedchar**out,int*outlen);////socketsocketintsckCltPool_putConnet(void*handleintconnfdintvalidFlag);0//socketintsckServer_init(intport,intintsckServer_accept(intlistenfd,inttimeout,intintsckServer_send(intconnfd,inttimeout,unsignedchar*data,intintsckServer_rev(int connfd,inttimeout,unsignedchar**out,int*outlen);//1intsckServer_close(intconnfd);int#ifdef}共享內(nèi)存操作組件設(shè)計(jì)與實(shí)共享內(nèi)存基本基本操查看共享內(nèi)操作共享內(nèi)[it01@localhost~]$ :選項(xiàng)需要一個(gè)參數(shù)--m :illegaloption--?usage: [[-qmsqid][-mshmid][-s[-Qmsgkey][-Mshmkey][-Ssemkey]...Linux共享內(nèi)存組件設(shè)計(jì)與實(shí)//#ifndef_WBM_MY_SHM_H_#define_WBM_MY_SHM_H_#include<stdio.h>#include<stdlib.h>#include#ifdefcplusplusextern"C"{0////intIPC_CreatShm(intkey,intshmsize,int//intIPC_OpenShm(intkey,intshmsize,int 創(chuàng)建共享內(nèi)存通 文 [out]共享內(nèi)存的句柄.返回值 返回0函數(shù)執(zhí)行成功;非0返回錯(cuò)誤intIPC_CreatShmBySeedName(char*shmname,intshmsize,int*shmhdl); mapaddrout]返回值 返回0函數(shù)執(zhí)行成功;非0返回錯(cuò)誤intIPC_MapShm(intshmhdl,void**mapaddr); [in]共享內(nèi)存首地返回值 返回0函數(shù)執(zhí)行成功;非0返回錯(cuò)誤intIPC_UnMapShm(void*unmapaddr); 返回值 返回0函數(shù)執(zhí)行成功;非0返回錯(cuò)誤intIPC_DelShm(intshmhdl);#ifdef}服務(wù)器框架設(shè)計(jì)與實(shí) 11初始化22顯示菜單:11初始化22顯示菜單:密鑰協(xié)商發(fā)送報(bào)文:接受應(yīng)答:密鑰校驗(yàn):密鑰注銷組織報(bào)編碼報(bào)發(fā)送報(bào)接受報(bào)寫共享內(nèi)客戶端和服務(wù)器密鑰協(xié)商//客戶端和服務(wù)器密鑰密鑰校驗(yàn)流////客戶端和服務(wù)器密鑰注銷 設(shè)計(jì)SecMng集成報(bào)文編組SecMng集成通訊組SecMng集成共享內(nèi)存組 集成日志組////1 keymngserver創(chuàng)建服務(wù)器端共享內(nèi)存,keymngserver創(chuàng)建共享內(nèi)存根據(jù)最大網(wǎng)點(diǎn) 外聯(lián)接口做業(yè)務(wù)時(shí),需要通過keymng 和keymngserver重新協(xié)商密鑰后,再做業(yè)//2 重新啟動(dòng)系統(tǒng),則共享內(nèi)存 管理員手工刪除共享內(nèi)存(軟件運(yùn)行中,不能刪除共享內(nèi)存,否則外聯(lián)接口異常//3 //4//{unsignedchar *recvbuf=NULL; recvbuflen=0; ret=reqMsg=reqMsgType=//unsigned sendBuf= sendBufLen=KeyMng_Log(FILE,LINE,KeyMngLevel[2],ret,"functhread_routine()begin");connfd=*((int*)arg); //64bit8{recvbuf=NULL;recvbuflen=0;reqMsg=reqMsgType=//sendBuf=sendBufLen=//ret=sckServer_rev(connfd,3,&recvbuf,if(ret=={KeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,",funcsckServer_rev()err,對(duì)方已關(guān)閉");}elseif(ret=={//KeyMng_Log(FILE,sckServer_rev()err,timeout超時(shí)");
LINE,KeyMngLevel[4],ret,"業(yè)務(wù)線程中,}elseif(ret!={KeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,",funcsckServer_rev()err,接受報(bào)文失敗");}ret=MsgDecode(recvbuf,recvbuflen,&reqMsg,&reqMsgType);if(ret!=0){ Mem((voidKeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,"funcMsgDecode()}//4處理請(qǐng)求根據(jù)業(yè)務(wù)類型組織應(yīng)答報(bào)文ret=KeyMng_OpReal(reqMsg,reqMsgType,&sendBuf,&sendBufLen);if(ret!=0){ Mem((void ((void**)&reqMsg,KeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,"funcMsgDecode()}//5ret=sckServer_send(connfd,3,sendBuf,sendBufLen);if(ret!=0){
Mem((void ((void**)&reqMsg,KeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,"func} Mem((voidMsgMem((void**)&reqMsg,}KeyMng_Log(FILE,LINE,KeyMngLevel[2],ret,"functhread_routine()end");}SecMngServer設(shè)計(jì)11讀配置文件2讀配置文件3讀數(shù)據(jù)庫(kù)4顯示菜單5:開端口啟動(dòng)服務(wù) 接,啟動(dòng)6業(yè)務(wù)線程做業(yè)務(wù)處理密鑰協(xié)組織報(bào)發(fā)送:接受報(bào) 報(bào)文寫共享內(nèi)存密1234567商//1組織報(bào)//2編碼報(bào)//3發(fā)送報(bào)//4接受報(bào)構(gòu)//6寫共享內(nèi)
務(wù)線程應(yīng)解析報(bào)文根據(jù)命令碼123,做具體的業(yè)務(wù)給客戶端應(yīng)答報(bào)組織應(yīng)答結(jié)構(gòu)回復(fù)報(bào)SecMngServer集成通信SecMngServer集成共享內(nèi)存組SecMngServer集成數(shù)據(jù)庫(kù)組 SecMngServer對(duì)接調(diào)1密鑰DER報(bào)文編碼錯(cuò) gdb調(diào)試2密鑰器端寫oracle數(shù)據(jù)庫(kù)錯(cuò)gdb調(diào)試數(shù)據(jù)傳輸庫(kù)設(shè)oracle數(shù)據(jù)庫(kù)使用常見問oracleoracle在linux環(huán)境中,用sqlplus工具oracle服在oracle用戶下,用sqlplusoracle服務(wù)在非oracle用戶下,用sqlplusoracle服務(wù)scott/aaod777/home/oracle_11/app–R同時(shí)配置在win環(huán)境中,用sqlplus工具linux環(huán)境下的oracle服1 net52 //linux服務(wù)器1521端口放3兩個(gè)配置文件2)listener.ora數(shù)據(jù)傳輸參考數(shù)據(jù)庫(kù)統(tǒng)一數(shù)據(jù)接口組件設(shè)計(jì)與實(shí)數(shù)據(jù)庫(kù)接口設(shè)計(jì)思基于連接池的數(shù)據(jù)庫(kù)方數(shù)據(jù)庫(kù)接口實(shí)#ifndef#ifndef#define#ifdefcplusplusextern"C"{#ifndef#ifndef#ifndef#defineICDBLob#define#defineICDBCLOB012#define#ifndeftypedefstruct{ #ifndeftypedefstruct{ICDBField* //externintIC_DB_DTUseLevel[5];externintDTORADBLevel[5];/*/*/* intIC_DBApi_PoolInit(intbounds,char*dbName,char*dbUser,char*/*/*/* sTimeout超時(shí)時(shí)間(秒nsTimeout超時(shí)時(shí)間(毫秒intIC_DBApi_ConnGet(ICDBHandle*handle,intsTimeout,int/*/*/* 數(shù)據(jù)庫(kù)連接有效 intIC_DBApi_Conn (ICDBHandlehandle,intvalidFlag);/*/*/*intIC_DBApi_Pool /*程序名 /*功能描述:執(zhí)行單個(gè)非select數(shù)據(jù)庫(kù)語句(不包含事務(wù)/* SelSql(ICDBHandlehandle,char*sql);/*/*select數(shù)據(jù)庫(kù)語句(包含事務(wù)/* 數(shù)據(jù)庫(kù)語句(NULL結(jié)束 SelSqls(ICDBHandlehandle,char*sqls[]);/*/*/* intIC_DBApi_BeginTran(ICDBHandlehandle);/*/*/* intIC_DBApi_Rollback(ICDBHandlehandle);/*/*/* mit(ICDBHandlehandle);/*/*select數(shù)據(jù)庫(kù)語句(返回單條記錄/* intIC_DBApi_ExecSelSql(ICDBHandlehandle,char*sql,ICDBRow*row);/*/*select數(shù)據(jù)庫(kù)語句(返回多條記錄/* intIC_DBApi_ExecSelSqlMR(ICDBHandlehandle,char*sql,intbeginNo,intcount,ICDBRow*rows,int*/*/*/* fieldCount intIC_DBApi_OpenCursor(ICDBHandlehandle,char*sql,intfieldCount,ICDBCursor*/*/*/* /*/*/* intIC_DBApi_CloseCursor(ICDBHandlehandle,ICDBCursor*pCursor);/*/*PEMDER/* PEMpemDataLenPEM DERderDataLenDERintIC_DBApi_Pem2Der(char*pemData,intpemDataLen,unsignedchar*derData,int*/*/*PEMDER/* DERderDataLenDER PEMpemDataLenPEMintIC_DBApi_Der2Pem(unsignedchar*derData,intderDataLen,char*pemData,int*/*程序名 /*功能描述 獲取數(shù)據(jù)庫(kù)時(shí) /*參數(shù)說明 數(shù)據(jù)庫(kù)連接句 數(shù)據(jù)庫(kù)時(shí) intIC_DBApi_GetDBTime(ICDBHandlehandle,char*dbTime);#define#define0#define#define//SQLDA#define//SQLDA#define//#define//#define//#define//#define//#define誤//#define//#define-//#define-與數(shù)據(jù)庫(kù)的連#ifdef}客戶端框架MFC設(shè)計(jì)與實(shí)主框架搭OutlookOICQ視圖的AppWizard生成單文檔單視圖的應(yīng)添加外部文件GFXGROUPEDIT.CPPGFXGROUPEDIT.HGFXOUTBARCTRL.CPPGFXOUTBARCTRL.HGFXPOPUP.CPPGFXPOPUPgfxPub.h,GFXSPLITTERWND.CPPGFXSPLITTERWND.H 3IDIDC_HANDLECUR、IDC_DRAGGING和IDC_NODRAGGING在resource.h中添加控件消息#defineID_GFX_SMALLICON #define #define #define #define #define #define //DWORDdwVersion//DWORDdwVersion=::GetVersion();DWORDdwVersion=4;BOOLbWin4=(BYTE)dwVersion>=2013\projects\mysecadmin_1\mysecadmin_1\gfxsplitterwnd.cpp2013\projects\mysecadmin_1\mysecadmin_1\gfxsplitterwnd.cpp45s\visual錯(cuò) errorC4996:'GetVersion': ine=bNotWin4=1- //form_upBorder=找不到資源視圖在CMainFrame中添加視圖切分功能a)在MainFrm.h中,包含相應(yīng)頭文件,添加對(duì)象變量定義添加#include"GfxSplitterWnd.h"#include"GfxOutBarCtrl.h"特//201507 imaLarge, 添加重載 函BOOLCMainFrame::OnCreate(LPCREATESTRUCTlpcs,CCreateContext*使用類向?qū)Ш瘮?shù)重寫如下定定義放在staticUINTnImages[]{函數(shù)之下面是虛函數(shù)重BOOLCMainFrame::OnCreate{(LPCREATESTRUCTlpcs,//TODO:在此添 代碼和/或調(diào)用基if(!wndSplitter.CreateStatic(this,1,2))returnif(!wndSplitter.CreateView(0,CSize(0,0),return//pContext->m_pNewViewClassRUNTIME_CLASS(CFormUserManager)DWORDdwf=CGfxOutBarCtrl::fDragItems|wndBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),&wndSplitter,wndSplitter.IdFromRowCol(0,0),dwf);imaLarge.Create(32,32,true,2,1);HICONhIcon;for(inti=0;i<7;{hIcon=AfxGetApp()->LoadIcon(nImages[i]);imaLarge.Add(hIcon);}wndBar.SetImageList(&imaLarge,CGfxOutBarCtrl::fLargeIcon);wndBar.SetImageList(&imaSmall,CRect(0,0,0,0),&wndBar,1010);wndTree.SetImageList(&imaSmall,TVSIL_NORMAL);wndBar.AddFolder("SecMngServer配置管理",wndBar.AddFolder("SecMngAdmin網(wǎng)點(diǎn)管理",wndBar.AddFolder("人員管理",wndBar.AddFolder("設(shè)備管理",//wndBar.AddFolder("CA人員操作查詢",wndBar.InsertItem(0,0"SecMngServer配置0,wndBar.InsertItem(0,1網(wǎng)點(diǎn)信息管理1,wndBar.InsertItem(0,2 業(yè)務(wù)管理4,0);wndBar.InsertItem(0,3 查詢5,0);"前臺(tái)體系管理"前臺(tái)業(yè)務(wù)管理"前臺(tái)查詢"創(chuàng)建人員"凍結(jié)人員"解凍2"注銷人員"創(chuàng)建設(shè)備"注銷管理CRect intw1=r.Width()/5;intw2=wndSplitter.SetColumnInfo(0,CRect intw1=r.Width()/5;intw2=wndSplitter.SetColumnInfo(0,w1,0wndSplitter.SetColumnInfo(1,w2,0);return//return(lpcs,} 下,引入ico文user.ico導(dǎo)入到項(xiàng)目中,在資源試圖中,做屬性配添加CFormBackground創(chuàng)建Dialog資源IDD_FORMBACKGROUND_FORM,并為其創(chuàng)建資源類CFormBackground,voidCFormBackground::OnDraw(CDC*在CFormBackground類重voidCFormBackground::OnDraw(CDC*{//TODO:在此添 代碼和/或調(diào)用基 for(intk13;k<18;k++)繪圖示例—顯示位{CBrush*pTempBrush=NULL;CBrushOrigBrush;CRect {CBitmapbmp;CBrushbrush(&bmp);pTempBrush=(CBrush*)pDC-pDC->Rectangle(rc.left,rc.top,rc.Width(),rc.Height());}catch(CResourceException*{}}CRect CRectrect2; CFontfontfont.CreatePointFont(340,CStringstring歡迎使用KeyMngServer管理終端rect.OffsetRect(6,rect.OffsetRect(6,90pDC->SetTextColor(RGB(192,192,pDC->DrawText(string,&rect,rect2.OffsetRect(0,-pDC->SetTextColor(RGB(0,0,pDC->DrawText(string,&rect2,}注意1:父類.classCFormBackgroundpublic注意2:CFormBackground類資源的屬Style屬性配置成注意3:在MainFrom頭文件中添加#include視圖的CMainFrame類中添加視圖切換自定義消息MainFrame.h中添加自定義消息…afx_msglong ram,LPARAMMainFrame.cppBEGIN_MESSAGE_MAP(CMainFrame,…ON_MESSAGE(WM_OUTBAR_NOTIFY,long{long{switch {case//castthelParamtoanintegertogettheclicked{intindex=(int)lParam;CStringcText,cs1; { CCfgView*pNewView=(CCfgView*)wndSplitter.GetPane(0,1);}{Context.m_pCurrentFrame=this; stView=(CViewCDlgNetInfo*pNewView=(CDlgNetInfo*)wndSplitter.GetPane(0,1);}elseif 業(yè)務(wù)管理{}}return
Context.m_pNewViewClass=RUNTIME_CLASS(CSysAll);Context.m_pCurrentFrame=this; CSysAll*pNewView=(CSysAll*)wndSplitter.GetPane(0,1);case//castthelParamtoanOUTBAR_INFO*struct;itwillcontaininfoabouttheedited//return1todothechangeand0tocancel{if(IsLoginOutFlag=={AfxMessageBox("CA人員以進(jìn)行相應(yīng)操作。");return1;}OUTBAR_INFO*pOI=(OUTBAR_INFO*)TRACE2("Editingitem%d,newtext:%s\n",pOI->index,pOI-}returncase//castthelParamtoanOUTBAR_INFO*struct;itwillcontaininfoabouttheedited//return1todothechangeand0tocancel{{if(IsLoginOutFlag=={return1;}OUTBAR_INFO*pOI=(OUTBAR_INFO*)TRACE2("Editingfolder%d,newtext:%s\n",pOI->index,pOI-}returncase//castthelParamtoanOUTBAR_INFO*struct;itwillcontaininfoaboutthedragged//return1todothechangeand0tocancel{if(IsLoginOutFlag=={return1;OUTBAR_INFO*pOI=(OUTBAR_INFO*)TRACE2("Dragitem%datposition%d\n",pOI->iDragFrom,pOI-}return}return}1>e:\01_work\23_項(xiàng)目\secmng\secmng\mainfrm.cpp(334errorC2653:“CCfgView”:不是類1>e:\01_work\23_項(xiàng)目\secmng\secmng\mainfrm.cpp(338errorC2653:“CCfgView”:不是類1>e:\01_work\23_項(xiàng)目\secmng\secmng\mainfrm.cpp(339errorC2065:“CCfgView”:未1>e:\01_work\23_項(xiàng)目\secmng\secmng\mainfrm.cpp(339errorC2065:“pNewView”:未聲CCfgViewDialog資源(id可以命名:IDD_DIALOG_CFG)CSysAllDialog資源(id可以命名:IDD_DIALOG_SYSALL)CCfgViewCCfgViewOnInitialUpdate多頁創(chuàng)多頁在項(xiàng)目開發(fā)中,是一個(gè)經(jīng)典界面。樣例如下創(chuàng)建框資源、創(chuàng)建創(chuàng)建視圖類CSysAll,關(guān)聯(lián)的框資源為創(chuàng)建視圖類CDlgTab1,CDlgTab2CDlgTab3分別關(guān)聯(lián)資源IDD_DIALOG_TAB1CSysAllCSysALLOnInitialUpdate()方法void{//TODO:在此添加代碼和/或調(diào)用基}在CSysAll類中添加頁成員變量,包含相應(yīng)頭文 //CTabCtrlm_myTabCSysAllCTabSheetCSysAll//CTabCtrlm_myTab;CTabSheetm_myTab;CTabSheet的.h.cpp文件源碼添加到項(xiàng)目文件中CSysAllWM_PAINT消息void{CPaintDCdc(this);//devicecontextforCRectrect,this->Getif((rect1.Width()<rect.Width())TODO://}SecMngAdmin初始Admin若配置文件存在,則參若配置文件不存在,則彈出框讓用戶錄入配置信SecMngAdmin配置參odbc連接和關(guān)閉數(shù)據(jù)}}returnint{//CDatabase strCon.Format("DSN=%s;UID=%s;PWD=%s"g_dbSource,g_dbUseg_dbpw);g_pDB=&myDB;//這樣操作速度快 //{if(!g_pDB->OpenEx(strCon,{AfxMessageBox("創(chuàng)建一條到數(shù)據(jù)源的連接發(fā)生錯(cuò)誤,請(qǐng)檢查數(shù)據(jù)源配置是否正確!");return-1;}{return-1;}通過odbc驅(qū)動(dòng)自動(dòng)生成記錄Odbc打開表查詢和多次查voidvoid{;//{srvCfgSet.m_strFilter.Format("key='%s'",{MessageBox打開ca.smSrvCfg表失??!數(shù)據(jù)庫(kù)操作MB_MODEMASK);return;}if{m_strSvrIP=}{}
m_strSvrIP=srvCfgSet.m_strFilter.Format("key='%s'","secmng_server_port");if{}{}
m_strSvrPORT=m_strSvrPORT=//srvCfgSet.m_strFilter.Format("key='%s'","secmng_server_maxnetnum");if{}{}
m_strSvrMaxNode=m_strSvrMaxNode空值UpdateData(FALSE);}{{}}}odbc新增和修改、事//1void{void{ dbtag=;//if{MessageBox"IP地址為空服務(wù)器配置錯(cuò)誤MB_MODEMASK);return;}if{MessageBox端口為空服務(wù)器配置錯(cuò)誤MB_MODEMASK);return;}if{MessageBox最大網(wǎng)點(diǎn)數(shù)為空服務(wù)器配置錯(cuò)誤MB_MODEMASK);return;}CSECMNGSRVCFGsrvCfgSet(g_pDB);{srvCfgSet.m_strFilter.Format("key='%s'",{MessageBox打開ca.smSrvCfg表失??!數(shù)據(jù)庫(kù)操作MB_MODEMASK);return;}if(!srvCfgSet.IsEOF({}else{srvCfgSet.m_KEY="secmng_server_ip";srvCfgSet.m_VALUDE=m_strSvrIP;}//srvCfgSet.m_strFilter.Format("key='%s'","secmng_server_port");if{}{}
srvCfgSet.m_KEY="secmng_server_port";srvCfgSet.m_VALUDE=m_strSvrPORT;//srvCfgSet.m_strFilter.Format("key='%s'","secmng_server_maxnetnum");if{}{}
srvCfgSet.m_KEY="secmng_server_maxnetnum";srvCfgSet.m_VALUDE=m_strSvrMaxNode;{dbtag={}if(dbtag=={MessageBoxSecMngServer配置信息失敗數(shù)據(jù)庫(kù)操作MB_MODEMASK);return;}{();//",}return}SecMngAdmin網(wǎng)點(diǎn)信息管CListCtrl屬性配 report屬CListCtrl控件的初始voidvoid}}//TODO:在此添 代碼和/或調(diào)用基ode.InsertColumn(0,"網(wǎng)點(diǎn)編號(hào)",LVCFMT_LEFT,nColInterval);ode.InsertColumn(1,"網(wǎng)點(diǎn)名稱",LVCFMT_LEFT,nColInterval);ode.InsertColumn(3,"網(wǎng)點(diǎn)狀態(tài)",LVCFMT_LEFT,nColInterval); intnColInterval=CRectrect; DWORDdwExStyle=m_imageList.Add(&cBmp,RGB(255,0,CBitmapHIMAGELISThList=ImageList_Create(16,16,ILC_COLOR8|ILC_MASK,8,TODO:{CListCtrl控件中插入簡(jiǎn)單數(shù)ode(CStringode(CString&ID,CString&Name,CTime&time,intstate,int{ returnreturn//CStringstrAuthcode(authcode)charsprintf(buf,"%d",authcode);lvi.pszText=buf;//Setsubitemlvi.iSubItem=}else}//Setsubitemlvi.iSubItem=3;if(state==1){lvi.iSubItem=1; //Setsubitem1lvi.pszText=(LPTSTR)(LPCTSTR)Name;strTime=time.Format("%Y-%m-%d%H:%M:%S");lvi.iSubItem=2; //Setsubitem2//Setsubitemlvi.iSubItem= lvi.mask LVIF_IMAGE|lvi.iItem0;//lvi.iImage=}}CListCtl控件中插入數(shù)據(jù)庫(kù)數(shù)odbcvoidvoid{dbtag=*myWnd=*But=0,tag0;// 0;//0strFilter // =(CWnd*)GetDlgItem(IDC_CHECK_TIME);But=(CButton*)myWnd;if(But->GetCheck()=={0,0,0);23,59,if(sqlTime1>={MessageBox開始時(shí)間不能大于結(jié)束時(shí)間!時(shí)間查詢MB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度寵物醫(yī)院獸醫(yī)團(tuán)隊(duì)薪酬績(jī)效管理合同4篇
- 2025年度航空航天專用模具訂購(gòu)合同范本
- 2025年度廠房租賃居間合同-新能源汽車制造租賃協(xié)議3篇
- 二零二五年度綠色能源股份買賣協(xié)議范本3篇
- 2025年度廠房出售與租賃一體化服務(wù)協(xié)議4篇
- 二零二四年度中央空調(diào)系統(tǒng)設(shè)備采購(gòu)、安裝與質(zhì)保協(xié)議3篇
- 2025年聚氯化鋁行業(yè)深度研究分析報(bào)告
- 二零二五年度外匯投資顧問服務(wù)合同
- 二零二五年度保安人員職業(yè)發(fā)展與聘用合同
- 二零二五版面料設(shè)計(jì)與生產(chǎn)一體化采購(gòu)合同樣本4篇
- 【探跡科技】2024知識(shí)產(chǎn)權(quán)行業(yè)發(fā)展趨勢(shì)報(bào)告-從工業(yè)轟鳴到數(shù)智浪潮知識(shí)產(chǎn)權(quán)成為競(jìng)爭(zhēng)市場(chǎng)的“矛與盾”
- 《中國(guó)政法大學(xué)》課件
- GB/T 35270-2024嬰幼兒背帶(袋)
- 遼寧省沈陽名校2025屆高三第一次模擬考試英語試卷含解析
- 2024-2025學(xué)年高二上學(xué)期期末數(shù)學(xué)試卷(新題型:19題)(基礎(chǔ)篇)(含答案)
- 2022版藝術(shù)新課標(biāo)解讀心得(課件)小學(xué)美術(shù)
- Profinet(S523-FANUC)發(fā)那科通訊設(shè)置
- 醫(yī)學(xué)教程 常見化療藥物歸納
- 麻醉藥品、精神藥品月檢查記錄表
- JJF 1101-2019環(huán)境試驗(yàn)設(shè)備溫度、濕度參數(shù)校準(zhǔn)規(guī)范
- GB/T 25000.51-2016系統(tǒng)與軟件工程系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE)第51部分:就緒可用軟件產(chǎn)品(RUSP)的質(zhì)量要求和測(cè)試細(xì)則
評(píng)論
0/150
提交評(píng)論