




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、密 級(jí) 公 開(kāi) 本科生畢業(yè)設(shè)計(jì)報(bào)告usbkey方式系統(tǒng)登錄身份認(rèn)證陶建飛 吳 芳(2007081205) (2007081124)指導(dǎo)教師姓名:劉 彥職 稱(chēng):副教授單 位:計(jì)算機(jī)科學(xué)系專(zhuān) 業(yè) 名 稱(chēng):計(jì)算機(jī)科學(xué)與技術(shù)設(shè)計(jì)提交日期:2011年4月25日設(shè)計(jì)答辯日期:2011年4月27日學(xué)位授予單位:黔南民族師范學(xué)院答辯委員會(huì)主席:設(shè) 計(jì) 評(píng) 閱 人:2011 年 4 月 28 日摘要:在今天這樣一個(gè)互聯(lián)網(wǎng)驅(qū)動(dòng)的社會(huì)中,網(wǎng)上銀行也稱(chēng)在線銀行,已經(jīng)成為金融機(jī)構(gòu)整體發(fā)展策略中不可或缺的一部分。近年來(lái)使用網(wǎng)上銀行的用戶(hù)數(shù)量巨大增長(zhǎng),并且每年保持了穩(wěn)定的發(fā)展勢(shì)頭。網(wǎng)上銀行在給它的用戶(hù)帶來(lái)諸多便捷服務(wù)、給銀
2、行節(jié)省費(fèi)用支出和帶來(lái)更多利潤(rùn)增長(zhǎng)點(diǎn)的同時(shí),也承受著很多安全風(fēng)險(xiǎn)。很多銀行意識(shí)到了這一點(diǎn),紛紛采取行動(dòng),包括不斷教育用戶(hù)提高自身安全意識(shí),安裝殺毒軟件,防木馬軟件;采用硬件usb key或者動(dòng)態(tài)口令牌方式進(jìn)行身份認(rèn)證等。usb key是一種usb接口的硬件設(shè)備。它內(nèi)置單片機(jī)或智能卡芯片,有一定的存儲(chǔ)空間,可以存儲(chǔ)用戶(hù)的私鑰以及數(shù)字證書(shū),利用usb key內(nèi)置的公鑰算法實(shí)現(xiàn)對(duì)用戶(hù)身份的認(rèn)證。由于用戶(hù)私鑰保存在密碼鎖中,理論上使用任何方式都無(wú)法讀取,因此保證了用戶(hù)認(rèn)證的安全性。usb key產(chǎn)品最早是由加密鎖廠商提出來(lái)的,原先的usb加密鎖主要用于防止軟件破解和復(fù)制,保護(hù)軟件不被盜版,而usb ke
3、y的目的不同,usb key主要用于網(wǎng)絡(luò)認(rèn)證,鎖內(nèi)主要保存數(shù)字證書(shū)和用戶(hù)私鑰。目前工行的usb key產(chǎn)品為“u盾”,招行的usb key產(chǎn)品為“友key”,兩者的主要供應(yīng)商都是usb key的專(zhuān)業(yè)廠商捷德公司。在今天企業(yè)信息化的發(fā)展形勢(shì)下,簡(jiǎn)單的用戶(hù)密碼驗(yàn)證方式已經(jīng)暴露出很多問(wèn)題,給管理和安全上帶來(lái)很大隱患。所以需要一種安全性更高的而且人為影響因素小的用戶(hù)認(rèn)證方式來(lái)替代原有方式。為此本課題將從硬件數(shù)字加密方向開(kāi)發(fā)出類(lèi)似于網(wǎng)銀登錄的ukey登錄的身份認(rèn)證系統(tǒng)。目 錄第一章 前言 41.1 設(shè)計(jì)目的 41.2 背景 41.3 課題 5第二章 環(huán)境的配置 52.1 設(shè)計(jì)環(huán)境 52.2 設(shè)計(jì)涉及到的
4、相關(guān)軟件 52.3 設(shè)計(jì)開(kāi)發(fā)語(yǔ)言 5第三章 系統(tǒng)的結(jié)構(gòu)分析與設(shè)計(jì)53.1 儲(chǔ)備知識(shí) 63.2設(shè)計(jì)要點(diǎn)分析 63.1.1 調(diào)查 63.1.2 可行性分析 63.3 模塊分析設(shè)計(jì) 6第四章 系統(tǒng)實(shí)現(xiàn)與系統(tǒng)測(cè)試 84.1 加密鎖內(nèi)部結(jié)構(gòu) 94.2 usbkey身份認(rèn)證驗(yàn)證原理模塊 104.3 部分設(shè)計(jì)成果展示圖片 114.4 設(shè)計(jì)相關(guān)代碼 164.1.1 前臺(tái)相關(guān)代碼 164.1.2 后臺(tái)相關(guān)代碼 16第五章 小結(jié) 165.1 系統(tǒng)開(kāi)發(fā)中遇到的問(wèn)題 165.2 小組分工與協(xié)作 17參考文獻(xiàn) 17致謝 18第一章 前言1.1 設(shè)計(jì)目的本次畢業(yè)設(shè)計(jì)我們選擇了usbkey身份認(rèn)證作為畢業(yè)設(shè)計(jì)課題。1.2
5、背景而今是一個(gè)網(wǎng)絡(luò)信息時(shí)代在線交易(購(gòu)物,付款),收發(fā)電子郵件,在線聊天交友及表單簽名,文件數(shù)字簽名等操作的用戶(hù)越來(lái)越多、對(duì)自身身份認(rèn)證的要求也越來(lái)越高,如果使用一般的軟件進(jìn)行身份認(rèn)證將會(huì)造成;1、軟件加密容易被破解2、 文件在傳輸過(guò)程中易被截獲、纂改3、加密軟件損壞,文件無(wú)法恢復(fù)。4、 用戶(hù)名密碼太長(zhǎng)容易忘記 5、存儲(chǔ)在計(jì)算機(jī)上容易被盜 6、 輸入用戶(hù)名和密碼時(shí)容易被盜或多個(gè)信息系統(tǒng)的密碼混淆等 。usbkey認(rèn)證系統(tǒng)安全登錄解決方案:usbkey是一種通過(guò)usb (通用串行總線接口)直接與計(jì)算機(jī)相連、具有密碼于是usb接口設(shè)備,usbkey通過(guò)usb端口提供的電源來(lái)工作,不需要額外的電源、
6、具有密碼驗(yàn)證功能、可靠高速的小型存儲(chǔ)設(shè)備。usbkey 是對(duì)現(xiàn)行的網(wǎng)絡(luò)安全體系的一個(gè)極為有力的補(bǔ)充,通過(guò)中國(guó)信息安全測(cè)評(píng)認(rèn)證中心認(rèn)證的網(wǎng)絡(luò)安全產(chǎn)品?;诳尚庞?jì)算基及智能卡技術(shù)把易用性,便攜性和最高級(jí)別的安全性帶給了使用microsoft ie或netscape navigator進(jìn)行web訪問(wèn),在線交易(購(gòu)物,付款),收發(fā)電子郵件,在線聊天交友及表單簽名,文件數(shù)字簽名等操作的用戶(hù),保證用戶(hù)在usbkey下的操作不可篡改、抵賴(lài)。usbkey最大的特點(diǎn)就是安全性高,技術(shù)規(guī)范一致性強(qiáng),操作系統(tǒng)兼容性好,攜帶使用靈活。usbkey作為網(wǎng)絡(luò)身份認(rèn)證令牌,它是web站點(diǎn)用戶(hù)密碼的安全便攜存儲(chǔ)器。usbke
7、y代表用戶(hù)身份,通過(guò)使用usbkey, 可以控制同一時(shí)間只能有一個(gè)用戶(hù)登陸網(wǎng)頁(yè)。由于usbkey使用usb接口,因此具有體積小,速度快,兼容性好的特點(diǎn)而且usbkey自身所具備的存貯器可以用來(lái)存儲(chǔ)一些個(gè)人信息或證書(shū),usbkey的內(nèi)部密碼算法可以為數(shù)據(jù)傳輸提供安全的管道,usbkey是適用于單機(jī)或網(wǎng)絡(luò)應(yīng)用的身份認(rèn)證安全防護(hù)產(chǎn)品。 1.3 課題硬件加密。本課題以u(píng)sbkey硬件為設(shè)計(jì)對(duì)象,設(shè)計(jì)的內(nèi)容包括。第二章 設(shè)計(jì)環(huán)境2.1運(yùn)行環(huán)境操作系統(tǒng):windows xp 內(nèi)存:1gcpu主頻:2.01ghz2.2開(kāi)發(fā)工具visualstudio 20052.3開(kāi)發(fā)語(yǔ)言c#面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言第三章 系
8、統(tǒng)的結(jié)構(gòu)分析與設(shè)計(jì)3.1 儲(chǔ)備知識(shí) 完成課題的條件:本課題的研究設(shè)計(jì)難度較大,需要掌握的知識(shí)較多,也需要花費(fèi)大量時(shí)間,由于學(xué)習(xí)單片機(jī)設(shè)計(jì)的時(shí)間有限,對(duì)這方面知識(shí)的認(rèn)識(shí)和掌握并不是很透徹,并且沒(méi)有相關(guān)方面的實(shí)踐經(jīng)驗(yàn),應(yīng)用起來(lái)就顯得相對(duì)很難。設(shè)計(jì)還沒(méi)有投入到真真切切的環(huán)境中去,不過(guò)我一直在致力于這方面知識(shí)的收集和整理。若要順利完成該usbkey身份認(rèn)證的設(shè)計(jì),要認(rèn)真做好需求分析,加強(qiáng)自學(xué),進(jìn)一步提高usbkey的使用方法,同時(shí)要積極與指導(dǎo)教師溝通,認(rèn)真聽(tīng)取指導(dǎo)教師的指導(dǎo)意見(jiàn)和要求。盡管自身?xiàng)l件在做該課題設(shè)計(jì)并不是很有實(shí)力,但是通過(guò)指導(dǎo)教師的幫助,小組人員共同努力,認(rèn)真做好每一個(gè)內(nèi)容,該課題設(shè)計(jì)一定
9、會(huì)順利完成。綜合該usbkey設(shè)計(jì)的內(nèi)容和要求,若要很好地完成該課題需要以下條件:1認(rèn)真進(jìn)行課題研究,做好自己的本職工作,全身心投入到設(shè)計(jì)過(guò)程中;2需要指導(dǎo)教師耐心指導(dǎo),多給學(xué)生提供意見(jiàn)和方法,以及經(jīng)驗(yàn)幫助;3同組人員通力合作,共同討論,相互幫助;4大量查閱相關(guān)書(shū)籍和資料;5向有相關(guān)系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)的前輩請(qǐng)教;3.1.1 調(diào)查 調(diào)查的具體內(nèi)容:1對(duì)使用工行“u盾”進(jìn)行過(guò)網(wǎng)購(gòu)的部分學(xué)生進(jìn)行調(diào)查分析。2.了解硬件的構(gòu)造,以及相關(guān)固化函數(shù)。3.向?qū)I(yè)人士請(qǐng)教,指點(diǎn)設(shè)計(jì)的關(guān)鍵之處。3.1.2 可行性分析可行性分析:通過(guò)可行性分析對(duì)所開(kāi)發(fā)的usbkey從適用性、經(jīng)濟(jì)效益以及開(kāi)發(fā)成本進(jìn)行研究。通過(guò)調(diào)查和usb
10、key設(shè)計(jì)目標(biāo)分析,對(duì)要開(kāi)發(fā)的硬件、軟件從技術(shù)、經(jīng)濟(jì)、資源和管理進(jìn)行可行性的分析。以保證資源合理使用、避免失誤和浪費(fèi)。l 技術(shù)可行性:本課題采用c#語(yǔ)言進(jìn)行編程,使用查找鎖函數(shù),獲取鎖基本信息,固化算法函數(shù),讀寫(xiě)存儲(chǔ)器函數(shù)以及增強(qiáng)算法函數(shù)來(lái)實(shí)現(xiàn)身份認(rèn)證。l 經(jīng)濟(jì)可行性: 本課題使用的單片機(jī), 具有極高的性能價(jià)格比,受到人們的重視和關(guān)注。它體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)格低廉、可靠性高、靈活性好、開(kāi)發(fā)較為容易,而且操作的時(shí)間非常短,因此使用起來(lái)非常方便。l 操作可行性:要進(jìn)行身份驗(yàn)證,必須要在客戶(hù)端安裝鎖的驅(qū)動(dòng)程序,它其實(shí)不是真正的驅(qū)動(dòng)程序,而是安裝必要的客戶(hù)端控件。然后安裝us
11、bkey開(kāi)發(fā)工具,對(duì)讀寫(xiě)鎖進(jìn)行設(shè)置,生成加密代碼和模板工程等其他相關(guān)配置,將基本實(shí)現(xiàn)用戶(hù)身份認(rèn)證功能。 3.2 模塊分析設(shè)計(jì) (1)、設(shè)計(jì)流程設(shè)計(jì)可行性分析階段酒店usbkey硬件購(gòu)買(mǎi)認(rèn)證函數(shù)庫(kù)的學(xué)習(xí)酒店室內(nèi)設(shè)計(jì)階段軟硬件結(jié)合并測(cè)試編寫(xiě)程序控制代碼(2)、設(shè)計(jì)的具體步驟安排:前期(設(shè)計(jì)準(zhǔn)備階段):此階段根據(jù)選題的具體內(nèi)容和指導(dǎo)老師進(jìn)行細(xì)致的溝通,聽(tīng)取老師的意見(jiàn)和向老師表達(dá)自己的設(shè)計(jì)理念。 對(duì)設(shè)計(jì)進(jìn)行可行性分析和對(duì)相關(guān)資料的收集整理,購(gòu)買(mǎi)usbkey硬件。 中期(設(shè)計(jì)的具體實(shí)施階段):該階段按部就班地進(jìn)行設(shè)計(jì),并根據(jù)實(shí)際情況修改設(shè)計(jì)細(xì)節(jié),同時(shí)在設(shè)計(jì)上遇到問(wèn)題及時(shí)向老師求助。定期向老師匯報(bào)設(shè)計(jì)進(jìn)度
12、和呈現(xiàn)設(shè)計(jì)成果。詳細(xì)分析usbkey硬件內(nèi)部結(jié)構(gòu)、以及起固化函數(shù)庫(kù)。理清設(shè)計(jì)思路,并根據(jù)設(shè)計(jì)安排查閱相應(yīng)書(shū)籍和搞懂實(shí)現(xiàn)的關(guān)鍵操作。編寫(xiě)程序代碼。后期(設(shè)計(jì)的整合編制階段): 該階段主要是對(duì)設(shè)計(jì)成果進(jìn)行相應(yīng)整合,制作成設(shè)計(jì)作品,同時(shí)應(yīng)反復(fù)和老師交流,更正設(shè)計(jì)中的不足,完善設(shè)計(jì)作品。 主要工作是對(duì)編寫(xiě)的代碼進(jìn)行調(diào)試,以及軟硬件結(jié)合并測(cè)試。 3.2設(shè)計(jì)要點(diǎn)分析 該設(shè)計(jì)我們使用visualstudio2005軟件進(jìn)行代碼編寫(xiě),安裝驅(qū)動(dòng),在加密鎖中寫(xiě)入用戶(hù)名,密碼。通過(guò)頁(yè)面來(lái)進(jìn)行身份認(rèn)證的測(cè)試。第四章 系統(tǒng)實(shí)現(xiàn)與系統(tǒng)測(cè)試4.1加密鎖內(nèi)部結(jié)構(gòu)圖:keyid固化硬件加密算法512字節(jié)數(shù)據(jù)儲(chǔ)存區(qū)-可讀可寫(xiě)密碼
13、區(qū)(儲(chǔ)存讀寫(xiě)密碼)硬件增強(qiáng)算法儲(chǔ)存增強(qiáng)算法密碼320到430的儲(chǔ)存空間用于儲(chǔ)存網(wǎng)站及相關(guān)的信息 加密鎖內(nèi)部結(jié)構(gòu)4.2 usbkey身份認(rèn)證驗(yàn)證原理模塊:服務(wù)器端產(chǎn)生隨機(jī)數(shù)服務(wù)器端使用相應(yīng)的算法對(duì)隨機(jī)數(shù)時(shí)行加密,生成服務(wù)端驗(yàn)證碼服務(wù)器端將隨機(jī)數(shù)發(fā)給客戶(hù)端服務(wù)器端將服務(wù)器端驗(yàn)證碼與從客戶(hù)端返回的客戶(hù)端驗(yàn)證碼相比較,如果相同,則為合法用戶(hù),否則為非法用戶(hù)客戶(hù)端使用加密鎖對(duì)隨機(jī)數(shù)進(jìn)行加密后,生成客戶(hù)端驗(yàn)證碼并返回給服務(wù)器端usbkey身份認(rèn)證驗(yàn)證原理模塊圖4.3部分設(shè)計(jì)成果圖片展示 圖一、沒(méi)有插入usbkey 圖二、沒(méi)有插入usbkey 點(diǎn)擊提交后的效果 圖三、插入usbkey,并且已經(jīng)寫(xiě)入用戶(hù)名和密
14、碼 圖四、插入usbkey后,返回后的效果圖示 圖五、插入usbkey 返回后修改隨機(jī)數(shù)所得到的效果4.4 相關(guān)設(shè)計(jì)代碼 4.4.1 前臺(tái)代碼 0; ) i -= 4; var digit = ( n i ) & 0xf; if (!start | digit != 0) start = false; result += digitarraydigit; return ( result = ? 0 : result );function button1_click() var devicepath,ret,n,mylen;try/建立操作我們的鎖的控件對(duì)象,用于操作我們的鎖 var aobje
15、ct = new activexobject(syunew3a.s_simnew3); /查找是否存在鎖,這里使用了findport函數(shù)devicepath = aobject.findport(0);if( aobject.lasterror!= 0 )window.alert ( 沒(méi)有發(fā)現(xiàn)加密鎖,請(qǐng)插入加密鎖!);return ; /讀取鎖的唯一id form1.keyid.value=tohex(aobject.getid_1(devicepath)+tohex(aobject.getid_2(devicepath);/getid_1()返回指定加密鎖的id號(hào)的前4個(gè)字節(jié);加密鎖的id號(hào)
16、由8個(gè)字節(jié)組成,getid_2()功能:返回指定設(shè)備路徑的加密鎖的id號(hào)的后4個(gè)字節(jié); if( aobject.lasterror!= 0 )/返回結(jié)果如果lasterror的值為0,則表示方法執(zhí)行成功,則返回結(jié)果為該加密鎖的id號(hào)的前4個(gè)字節(jié)。如果lasterror值為其它值,則表示方法失敗,錯(cuò)誤原因可以參見(jiàn)錯(cuò)誤代碼含義 window.alert( err to getid,errcode is:+aobject.lasterror.tostring(); return ;/獲取設(shè)置在鎖中的用戶(hù)名,使用默認(rèn)的讀密碼ffffffff,ffffffffret=aobject.yreadex(0,
17、1,ffffffff,ffffffff,devicepath);/yreadex ()功能:從加密鎖的指定儲(chǔ)存空間地址讀出數(shù)據(jù),該函數(shù)用于讀取一批數(shù)據(jù)mylen =aobject.getbuf(0);/在調(diào)用yreadex方法后,應(yīng)立即調(diào)用getbuf方法從數(shù)據(jù)緩沖區(qū)中取回?cái)?shù)據(jù),如果返回結(jié)果為0,則表示方法執(zhí)行成功,調(diào)用getbuf方法從數(shù)據(jù)緩沖區(qū)中取回?cái)?shù)據(jù)。如果為其它值,則表示方法失敗form1.username.value=aobject.yreadstring(1,mylen, ffffffff, ffffffff, devicepath);/yreadstring ( )功能:從加密鎖
18、的指定起始位置讀取字符串,返回結(jié)果如果lasterror的值為0,則表示方法執(zhí)行成功,則返回結(jié)果為加密鎖address的儲(chǔ)存空間中儲(chǔ)存的字符串。if( aobject.lasterror!= 0 )window.alert( err to getusername,errcode is:+aobject.lasterror.tostring();return ;/獲到設(shè)置在鎖中的用戶(hù)密碼,使用默認(rèn)的讀密碼ffffffff,ffffffffret=aobject.yreadex(20,1,ffffffff,ffffffff,devicepath);/mylen =aobject.getbuf(0)
19、;form1.password.value=aobject.yreadstring(21,mylen,ffffffff, ffffffff, devicepath);/21表示讀出的字符串儲(chǔ)存在加密鎖的起始位置是21if( aobject.lasterror!= 0 )window.alert( err to getpwd,errcode is:+aobject.lasterror.tostring();return ;/這里返回對(duì)隨機(jī)數(shù)的hash結(jié)果form1.return_encdata.value=aobject.encstring(form1.rnd.value,devicepath)
20、;/encstring()功能:使用增強(qiáng)算法對(duì)字符串進(jìn)行加密,form1.rnd.value是要加密的字符串if( aobject.lasterror!= 0 )window.alert( err to strenc,errcode is:+aobject.lasterror.tostring();return ; form1.submit();catch (e) alert( + : + e.message);- 身份認(rèn)證的原理概述a、第一種方法只是簡(jiǎn)單地從客戶(hù)端讀取鎖
21、的唯一id或從鎖中讀取用戶(hù)的用戶(hù)名及密碼,這樣就容易被一些黑客編寫(xiě)一些程序?qū)@些進(jìn)行模仿,從而繞過(guò)從客戶(hù)端讀取加密鎖。b、方法二則是先從服務(wù)器端生產(chǎn)一個(gè)隨機(jī)數(shù),然后將該隨機(jī)數(shù)發(fā)給客戶(hù)端,同時(shí)服務(wù)器端使用與鎖對(duì)應(yīng)的增強(qiáng)算法對(duì)該隨機(jī)數(shù)進(jìn)行加密,生成一服務(wù)器端驗(yàn)證碼;c、而在客戶(hù)端,在獲得服務(wù)器商發(fā)過(guò)來(lái)的隨機(jī)數(shù)后,客戶(hù)端使用對(duì)應(yīng)的算法同樣對(duì)該隨機(jī)數(shù)進(jìn)行加密,生成一客戶(hù)端驗(yàn)證碼,返回給服務(wù)器端,d、如果相同,則為合法用戶(hù),如果不相同,則為非法用戶(hù)。e、只有在服務(wù)器的加密密鑰與設(shè)置在鎖中的加密密鑰一致時(shí),兩邊加密的結(jié)果才能相符,才能被合法驗(yàn)證。 4.4.2 后臺(tái)代碼 using system;using
22、 system.data;using system.configuration;using system.web;using system.web.security;using system.web.ui;using system.web.ui.webcontrols;using system.web.ui.webcontrols.webparts;using system.web.ui.htmlcontrols;namespace testkey public partial class _default : system.web.ui.page protected void page_lo
23、ad(object sender, eventargs e) this.title = usbkey客戶(hù)服務(wù)端身份認(rèn)證; if (keyid.text = ) system.random random = new system.random();/system.random類(lèi)生成隨機(jī)數(shù).next()返回一個(gè)02147483647之間的整數(shù) sessionrnd = rnd.text = random.next().tostring(); protected void button1_click(object sender, eventargs e) /獲取客戶(hù)端返回的唯一id response
24、.write(); response.write(keyid是:); response.write(keyid.text); response.write(); /獲取客戶(hù)端返回設(shè)置在key中的用戶(hù)名 response.write(); response.write(用戶(hù)名是:); response.write(username.text); response.write(); /獲取客戶(hù)端返回設(shè)置在key中的用戶(hù)登錄密碼 response.write(); response.write(用戶(hù)登錄密碼是:); response.write(password.text); response.wr
25、ite(); /輸出當(dāng)前隨機(jī)數(shù) response.write(); response.write(隨機(jī)數(shù)是:); response.write(sessionrnd); response.write(); / 返回用戶(hù)鎖對(duì)隨機(jī)數(shù)的hash結(jié)果 response.write(); response.write(用戶(hù)返回的hash結(jié)果是:); response.write(return_encdata.text); response.write(); /這里在服務(wù)器端對(duì)隨機(jī)數(shù)進(jìn)行同樣的加密運(yùn)算 string strdata, m_strenc, key; /key:即加密密鑰,這個(gè)要與設(shè)置在加密鎖
26、中的密鑰一致 key = 1234567890abcdef1234567890abcdef; /strdata:要進(jìn)行加密的數(shù)據(jù) strdata = sessionrnd.tostring(); /在服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行加密運(yùn)算 m_strenc = global.m_softkey.strenc(strdata, key);/strdata是要加密的數(shù)據(jù)。key是密鑰 response.write(); response.write(服務(wù)器要運(yùn)算的隨機(jī)數(shù)是:); response.write(strdata); response.write(); response.write(); respo
27、nse.write(服務(wù)器hash的結(jié)果是:); response.write(m_strenc); response.write(); /比較客戶(hù)端加密鎖返回的加密結(jié)果與服務(wù)端的加密結(jié)果是否相符,如果相符就認(rèn)為是合法用戶(hù),由于使用了隨機(jī)數(shù),從而實(shí)現(xiàn)了一次一密的高安全性,可以用于高安全性的身份驗(yàn)證 if (m_strenc = return_encdata.text) response.write(該用戶(hù)是合法用戶(hù)); / response.redirect(); else response.write(該用戶(hù)不是合法用戶(hù)); response.write(); protected void
28、keyid_textchanged(object sender, eventargs e) protected void username_textchanged(object sender, eventargs e) protected void password_textchanged(object sender, eventargs e) protected void rnd_textchanged(object sender, eventargs e) protected void return_encdata_textchanged(object sender, eventargs
29、e) 增強(qiáng)加密算法 public string strenc(string instring, string key)/使用增強(qiáng)算法strenc(),加密字符串,instring是要加密的字符串,key是加密密鑰,提示:要加密字符串以8個(gè)字節(jié)為一個(gè)分組;要加密的字符串少于8個(gè)字節(jié)時(shí),不足的字節(jié)補(bǔ)數(shù)據(jù)0;要加密的字符串大于8個(gè)字節(jié),但不是8的倍數(shù)時(shí),多余的數(shù)據(jù)不作加密處理 byte b, outb; byte temp = new byte8, outtemp = new byte8;/字符串的加密過(guò)程,是先將字符串轉(zhuǎn)化為字節(jié)數(shù)組,然后調(diào)用cal函數(shù)對(duì)數(shù)據(jù)進(jìn)行加密,加密后的數(shù)據(jù)將會(huì)以16進(jìn)制字符
30、串的形式返回,所以加密后的字符串的長(zhǎng)度是原來(lái)要加密字符串的長(zhǎng)度(含結(jié)束字符)的兩倍,且至少不少于16個(gè)字符串, int n, i, nlen, outlen; string outstring; nlen = lstrlena(instring) + 1; if (nlen 8) outlen = 8; else outlen = nlen; b = new byteoutlen; outb = new byteoutlen; copystringtobyte(b, instring, nlen); b.copyto(outb, 0); for (n = 0; n = outlen - 8;
31、n = n + 8) for (i = 0; i 8; i+) tempi = bi + n; encode(temp, outtemp, key); for (i = 0; i 8; i+) outbi = outtempi + n; outstring = ; for (n = 0; n = outlen - 1; n+) outstring = outstring + outbn.tostring(x2); return outstring; 第五章 小結(jié)5.1、usbkey計(jì)中遇到的問(wèn)題在本次在系統(tǒng)的開(kāi)發(fā)中,我們遇到了不少的問(wèn)題,其中遇到的主要問(wèn)題是開(kāi)發(fā)出類(lèi)似于網(wǎng)銀登錄的基于b/s的使用ukey登錄的身份認(rèn)證系統(tǒng),以實(shí)現(xiàn)不同
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保行業(yè)廢棄物處理風(fēng)險(xiǎn)協(xié)議
- 高級(jí)化妝品行業(yè)售后免責(zé)協(xié)議
- 建設(shè)工程施工協(xié)議(32篇)
- 上海手房買(mǎi)賣(mài)協(xié)議
- 臨時(shí)租車(chē)協(xié)議書(shū)
- 班班通設(shè)備管理和使用協(xié)議
- 物流配送中心建設(shè)委托代理合同
- 建筑工地安全施工責(zé)任與免責(zé)合同
- 房地產(chǎn)項(xiàng)目銷(xiāo)售居間合同
- 教練與學(xué)員合同協(xié)議
- 光伏電站小EPC規(guī)定合同范本
- 2024年01月江蘇2024年昆山鹿城村鎮(zhèn)銀行第三期校園招考筆試歷年參考題庫(kù)附帶答案詳解
- 中國(guó)人口研究專(zhuān)題報(bào)告-中國(guó)2025-2100年人口預(yù)測(cè)與政策建議-西南財(cái)經(jīng)大學(xué)x清華大學(xué)-202501
- 建筑工程安全與管理
- 2025年內(nèi)蒙古機(jī)電職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2024年05月齊魯銀行總行2024年社會(huì)招考筆試歷年參考題庫(kù)附帶答案詳解
- 浙江省紹興市2024-2025學(xué)年高一上學(xué)期期末調(diào)測(cè)英語(yǔ)試題(無(wú)答案)
- 幼兒園開(kāi)學(xué)教師安全知識(shí)培訓(xùn)
- 2024年醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范培訓(xùn)課件
- 中華人民共和國(guó)學(xué)前教育法-知識(shí)培訓(xùn)
- 2023年新高考(新課標(biāo))全國(guó)2卷數(shù)學(xué)試題真題(含答案解析)
評(píng)論
0/150
提交評(píng)論