版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 信息科學(xué)與工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 題 目: RC4加密算法的實(shí)現(xiàn)</p><p> 學(xué) 號(hào): </p><p> 姓 名:
2、 </p><p> 專(zhuān) 業(yè): 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù) </p><p> 課 程: 計(jì)算機(jī)網(wǎng)絡(luò)安全教程 </p><p> 指導(dǎo)教師: 職稱(chēng): 教 師 </p><p> 完成時(shí)間: 2012年 11月----2012 年
3、12 月</p><p><b> 一.系統(tǒng)設(shè)計(jì)的目標(biāo)</b></p><p> 隨著信息化的發(fā)展,人們?cè)谛畔鬟f,數(shù)據(jù)共享等方面的要求越來(lái)越高。但與此同時(shí),數(shù)據(jù)的保密、個(gè)人的隱私保護(hù)也越來(lái)越困難,迫使人們不得不采取相應(yīng)的措施來(lái)提高信息的安全性。在此條件下,加密技術(shù)應(yīng)運(yùn)而生。加密作為一把系統(tǒng)安全的鑰匙,是實(shí)現(xiàn)信息安全的重要手段之一,正確的使用加密技術(shù)可以確保信息的
4、安全。</p><p> 人們所熟悉的加密技術(shù)很多,比如數(shù)字簽名、版權(quán)注冊(cè)、軟盤(pán)加密、軟件鎖等等。本人的設(shè)計(jì)思想是利用文件夾的加密來(lái)實(shí)現(xiàn)對(duì)軟件或文件的安全加密。在此設(shè)計(jì)基礎(chǔ)上編寫(xiě)了一個(gè)程序,該軟件操作簡(jiǎn)單方便,適用于個(gè)人PC上對(duì)文件的加密。用戶(hù)可自選密鑰對(duì)重要文件或可執(zhí)行程序進(jìn)行加密,防止未授權(quán)用戶(hù)竊密。</p><p> 本文描述了利用文件夾的加密來(lái)實(shí)現(xiàn)對(duì)文件或程序的保護(hù)方案。采用了
5、“對(duì)稱(chēng)式”加密技術(shù)即采用文件逐字節(jié)與密碼異或方式對(duì)文件或可執(zhí)行程序加密。選用C++編程語(yǔ)言,設(shè)計(jì)了一個(gè)加密程序,該程序不拘泥于花俏的界面,僅使用了一個(gè)簡(jiǎn)單的對(duì)話(huà)框,具有簡(jiǎn)單實(shí)用的特點(diǎn)。在該方案的實(shí)現(xiàn)中,由于使用了可靠的密碼學(xué)算法,使軟件加密的強(qiáng)度大大提高。</p><p><b> 二.系統(tǒng)原理:</b></p><p> 1. RC4加密算法原理: </p
6、><p> RC4加密算法是大名鼎鼎的RSA三人組中的頭號(hào)人物Ron Rivest在1987年設(shè)計(jì)的密鑰長(zhǎng)度可變的流加密算法簇。之所以稱(chēng)其為簇,是由于其核心部分的S-box長(zhǎng)度可為任意,但一般為256字節(jié)。該算法的速度可以達(dá)到DES加密的10倍左右。 </p><p> RC4算法的原理很簡(jiǎn)單,包括初始化算法和偽隨機(jī)子密碼生成算法兩大部分。假設(shè)S-box長(zhǎng)度和密鑰長(zhǎng)度均為為n。先來(lái)看看算法
7、的初始化部分(用類(lèi)C偽代碼表示): </p><p> for (i=0; i<n; i++) </p><p><b> s=i; </b></p><p><b> j=0; </b></p><p> for (i=0; i<n; i++) </p><
8、p><b> { </b></p><p> j=(j+s+k)%256; </p><p> swap(s, s[j]); </p><p><b> } </b></p><p> 在初始化的過(guò)程中,密鑰的主要功能是將S-box攪亂,i確保S-box的每個(gè)元素都得到處理,j保證S
9、-box的攪亂是隨機(jī)的。而不同的S-box在經(jīng)過(guò)偽隨機(jī)子密碼生成算法的處理后可以得到不同的子密鑰序列,并且,該序列是隨機(jī)的: </p><p><b> i=j=0; </b></p><p> while (明文未結(jié)束) </p><p><b> { </b></p><p><b&
10、gt; ++i%=n; </b></p><p> j=(j+s)%n; </p><p> swap(s, s[j]); </p><p> sub_k=s((s+s[j])%n); </p><p><b> } </b></p><p> 得到的子密碼sub_k用以和
11、明文進(jìn)行xor運(yùn)算,得到密文,解密過(guò)程也完全相同。 </p><p> 由于RC4算法加密是采用的xor,所以,一旦子密鑰序列出現(xiàn)了重復(fù),密文就有可能被破解。關(guān)于如何破解xor加密,請(qǐng)參看Bruce Schneier的Applied Cryptography一書(shū)的1.4節(jié)Simple XOR,在此我就不細(xì)說(shuō)了。那么,RC4算法生成的子密鑰序列是否會(huì)出現(xiàn)重復(fù)呢?經(jīng)過(guò)我的測(cè)試,存在部分弱密鑰,使得子密鑰序列在不到1
12、00萬(wàn)字節(jié)內(nèi)就發(fā)生了完全的重復(fù),如果是部分重復(fù),則可能在不到10萬(wàn)字節(jié)內(nèi)就能發(fā)生重復(fù),因此,推薦在使用RC4算法時(shí),必須對(duì)加密密鑰進(jìn)行測(cè)試,判斷其是否為弱密鑰。 </p><p> 但在2001年就有以色列科學(xué)家指出RC4加密算法存在著漏洞,這可能對(duì)無(wú)線(xiàn)通信網(wǎng)絡(luò)的安全構(gòu)成威脅。 </p><p> 以色列魏茨曼研究所和美國(guó)思科公司的研究者發(fā)現(xiàn),在使用“有線(xiàn)等效保密規(guī)則”(WEP)的無(wú)線(xiàn)
13、網(wǎng)絡(luò)中,在特定情況下,人們可以逆轉(zhuǎn)RC4算法的加密過(guò)程,獲取密鑰,從而將己加密的信息解密。實(shí)現(xiàn)這一過(guò)程并不復(fù)雜,只需要使用一臺(tái)個(gè)人電腦對(duì)加密的數(shù)據(jù)進(jìn)行分析,經(jīng)過(guò)幾個(gè)小時(shí)的時(shí)間就可以破譯出信息的全部?jī)?nèi)容。 </p><p> 專(zhuān)家說(shuō),這并不表示所有使用RC4算法的軟件都容易泄密,但它意味著RC4算法并不像人們?cè)日J(rèn)為的那樣安全。這一發(fā)現(xiàn)可能促使人們重新設(shè)計(jì)無(wú)線(xiàn)通信網(wǎng)絡(luò),并且使用新的加密算法。</p>
14、<p> 三. 系統(tǒng)功能分析:</p><p><b> 圖1:系統(tǒng)功能圖</b></p><p><b> 四.系統(tǒng)實(shí)現(xiàn): </b></p><p> 設(shè)計(jì)的核心部分仍是算法的核心部分,根據(jù)des算法的原理,建立相關(guān)的變量,和函數(shù),完成對(duì)8位字符的加密,解密。而對(duì)于文件的加密與解密只需要在文件的讀取時(shí)
15、,按加密的位數(shù)讀取然后調(diào)用算法,加密后保存到一個(gè)文件,一直到文件的末尾,從而實(shí)現(xiàn)文件的加密。而解密是加密的逆過(guò)程,只要將密鑰按反順序使用即可,算法一致,調(diào)用的函數(shù)也都一樣。</p><p><b> 1.功能要求</b></p><p> ?。?)設(shè)計(jì)操作界面;(如圖3)</p><p><b> 圖3</b><
16、/p><p> ?。?)對(duì)輸入的明文可以進(jìn)行加解密;(如圖4)</p><p> (3)對(duì)指定的文件可以加解密。(圖5)</p><p> 對(duì)文件夾進(jìn)行解密:(圖6)</p><p><b> 詳細(xì)設(shè)計(jì) </b></p><p><b> 字符加解密數(shù)據(jù)流圖</b><
17、;/p><p> 字符加解密數(shù)據(jù)流圖(7)</p><p><b> 一層數(shù)據(jù)流圖(8)</b></p><p><b> 二層數(shù)據(jù)流圖(9)</b></p><p><b> 附錄:</b></p><p><b> 源程序代碼:<
18、;/b></p><p><b> RC4算法的實(shí)現(xiàn):</b></p><p> void RC4::swap(baseType *i,baseType *j)</p><p><b> {</b></p><p> baseType temp;</p><p>
19、;<b> temp=*i;</b></p><p><b> *i=*j;</b></p><p><b> *j=temp;</b></p><p><b> }</b></p><p> void RC4::s_box(baseType *
20、s,char *key,int keyLen)</p><p><b> {</b></p><p> int i=0,j=0;</p><p> for(i=0;i<256;i++)</p><p><b> s[i]=i;</b></p><p> for
21、(i=0;i<256;i++)</p><p><b> {</b></p><p> j=(j+s[i]+key[i%keyLen])%256;</p><p> swap(&s[i],&s[j]);</p><p><b> }</b></p><
22、;p><b> }</b></p><p> void RC4::encryption(char *src,char *key,int keyLen,int srcLen)</p><p><b> {</b></p><p> int i=0,j=0,k=0,index=0;</p><
23、p> baseType s[256];</p><p> ::memset((void *)s,0,256);</p><p> s_box(s,key,keyLen);</p><p> for(i=0;i<srcLen;i++)</p><p><b> {</b></p><
24、;p><b> ++j%=256;</b></p><p> k=(k+s[j])%256;</p><p> swap(&s[j],&s[k]);</p><p> index=(s[j]+s[k])%256;</p><p> src[i]^=s[index];</p>
25、<p><b> }</b></p><p><b> }</b></p><p><b> 我寫(xiě)的代碼:</b></p><p><b> 字符串解密:</b></p><p> char *key=new char;</p&g
26、t;<p> m_key.GetWindowText(key,255);</p><p> CString strKey(" ",256);</p><p> strKey.Format("%s",key);</p><p> if(strKey.IsEmpty())</p><p&g
27、t;<b> {</b></p><p> MessageBox("你還沒(méi)有輸入密鑰!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> char *src=new
28、 char;</p><p> m_detStr.GetWindowText(src,100);</p><p> CString strSrc(" ",101);</p><p> strSrc.Format("%s",strSrc);</p><p> if(strSrc.IsEmpty()
29、)</p><p><b> {</b></p><p> MessageBox("請(qǐng)輸入你要加密的字符串!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p>&
30、lt;p> rc4.encryption(src,key,(int)strlen(key),(int)strlen(src));</p><p> m_srcStr.SetWindowText(src);</p><p> 字符串加密:char *key=new char;</p><p> m_key.GetWindowText(key,255);
31、</p><p> CString strKey(" ",256);</p><p> strKey.Format("%s",key);</p><p> if(strKey.IsEmpty())</p><p><b> {</b></p><p>
32、; MessageBox("你還沒(méi)有輸入密鑰!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> char *src=new char;</p><p> m_srcStr.GetWin
33、dowText(src,100);</p><p> CString strSrc(" ",101);</p><p> strSrc.Format("%s",strSrc);</p><p> if(strSrc.IsEmpty())</p><p><b> {</b>
34、</p><p> MessageBox("請(qǐng)輸入你要加密的字符串!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> rc4.encryption(src,key,(int)strlen
35、(key),(int)strlen(src));</p><p> m_detStr.SetWindowText(src);</p><p><b> 到上面那部分</b></p><p><b> 打開(kāi)文件:</b></p><p> CString lpszFilter="te
36、xt file (*.txt)|*.txt|Microsoft doc (*.doc)|*.doc|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";</p><p> CString readBuf(" ",1000);</p><p> CString lpszDefExt=&
37、quot;.txt";</p><p> CString lpszFileName="*.txt";</p><p> char *ch1=new char;</p><p> char ch[9];</p><p> ::memset((void *)ch,0,9);</p><p&
38、gt; char str[200];</p><p> ::memset((void *)str,0,200);</p><p> CFileDialog *fileOpen=new CFileDialog( true, lpszDefExt, lpszFileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, lpszFilter,
39、NULL );</p><p> if(!fileOpen->DoModal())</p><p><b> {</b></p><p> MessageBox("Open failly!",NULL,MB_OK);</p><p><b> return;</b>
40、</p><p><b> }</b></p><p> CString filePath=fileOpen->GetPathName();</p><p> m_srcFile.SetWindowText(LPCTSTR(filePath));</p><p> 保存文件:CString lpszFi
41、lter="text file (*.txt)|*.txt|Microsoft doc (*.doc)|*.doc|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";</p><p> CString lpszDefExt=".txt";</p><p> CString
42、 lpszFileName="*.txt";</p><p> CFileDialog *fileSave=new CFileDialog( false, lpszDefExt, lpszFileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, lpszFilter, NULL );</p><p> CFile c
43、File;</p><p> if(!fileSave->DoModal())</p><p><b> {</b></p><p> MessageBox("failed!",NULL,MB_OK);</p><p><b> return;</b></p&
44、gt;<p><b> }</b></p><p> CArchive ar(&cFile,CArchive::load);</p><p> CString filePath=fileSave->GetPathName();</p><p> m_detFile.SetWindowText(filePath
45、);</p><p> if(cFile.Open(LPCTSTR(filePath),CFile::modeCreate|CFile::modeWrite)==0)</p><p><b> {</b></p><p> MessageBox("Open failly!",NULL,MB_OK);</p>
46、<p><b> return;</b></p><p><b> }</b></p><p><b> 文件加密:</b></p><p> char key[256];</p><p> ::memset((void *)key,'
47、9;,256);</p><p> char ch[101];</p><p> ::memset((void *)ch,' ',101);</p><p> m_key.GetWindowText(key,strlen(key));</p><p> CString key1;</p><p>
48、; key1.Format("%s",key);</p><p> if(key1.IsEmpty())</p><p><b> {</b></p><p> MessageBox("你還沒(méi)有輸入密鑰!",NULL,MB_OK);</p><p><b> r
49、eturn;</b></p><p><b> }</b></p><p> CString srcFilePath(" ",200);</p><p> m_srcFile.GetWindowText(srcFilePath);</p><p> if(srcFilePath.I
50、sEmpty())</p><p><b> {</b></p><p> MessageBox("你還沒(méi)有選擇源文件",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p&g
51、t;<p> CFile srcFile;</p><p> if(srcFile.Open(LPCTSTR(srcFilePath),CFile::modeRead)==0)</p><p><b> {</b></p><p> MessageBox("源文件打開(kāi)失敗!",NULL,MB_OK);&
52、lt;/p><p><b> return;</b></p><p><b> }</b></p><p> CArchive srcAr(&srcFile,CArchive::load);</p><p> int fileLen=srcFile.GetLength();</p&
53、gt;<p> CString detFilePath(" ",200);</p><p> m_detFile.GetWindowText(detFilePath);</p><p> if(detFilePath.IsEmpty())</p><p><b> {</b></p>&l
54、t;p> MessageBox("你還沒(méi)有選擇目標(biāo)文件",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> CFile detFile;</p><p> if(detFile.Op
55、en(LPCTSTR(detFilePath),CFile::modeCreate|CFile::modeWrite)==0)</p><p><b> {</b></p><p> MessageBox("目標(biāo)文件打開(kāi)失敗!",NULL,MB_OK);</p><p><b> return;</b&
56、gt;</p><p><b> }</b></p><p> CString len;</p><p> len.Format("%d",fileLen);</p><p> if(fileLen<=100)</p><p><b> {</b
57、></p><p> srcFile.Read((void *)ch,fileLen);</p><p> rc4.encryption(ch,key,strlen(key),strlen(ch));</p><p> detFile.Write((void *)ch,strlen(ch));</p><p><b>
58、 }</b></p><p> if(fileLen>100)</p><p><b> {</b></p><p> int k=0,i=0;</p><p> k=fileLen/100;</p><p> for(i=0;i<k;i++)</p>
59、<p><b> {</b></p><p> srcFile.Read((void *)ch,100);</p><p> rc4.encryption(ch,key,strlen(key),100);</p><p> detFile.Write((void *)ch,100);</p><p>
60、;<b> }</b></p><p> k=fileLen%100;</p><p><b> if(k!=0)</b></p><p><b> {</b></p><p> srcAr.Read((void *)ch,k);</p><p&g
61、t; rc4.encryption(ch,key,strlen(key),k);</p><p> detFile.Write((void *)ch,k);</p><p><b> }</b></p><p><b> }</b></p><p> MessageBox("恭喜
62、您,加密成功!",NULL,MB_OK);</p><p> srcFile.Close();</p><p> detFile.Close();</p><p><b> 文件解密:</b></p><p> char key[256];</p><p> ::memset
63、((void *)key,' ',256);</p><p> char ch[101];</p><p> ::memset((void *)ch,' ',101);</p><p> m_key.GetWindowText(key,strlen(key));</p><p> CString key
64、1;</p><p> key1.Format("%s",key);</p><p> if(key1.IsEmpty())</p><p><b> {</b></p><p> MessageBox("你還沒(méi)有輸入密鑰!",NULL,MB_OK);</p>
65、<p><b> return;</b></p><p><b> }</b></p><p> CString srcFilePath(" ",200);</p><p> m_srcFile1.GetWindowText(srcFilePath);</p><
66、p> if(srcFilePath.IsEmpty())</p><p><b> {</b></p><p> MessageBox("你還沒(méi)有選擇源文件",NULL,MB_OK);</p><p><b> return;</b></p><p><b&g
67、t; }</b></p><p> CFile srcFile;</p><p> if(srcFile.Open(LPCTSTR(srcFilePath),CFile::modeRead)==0)</p><p><b> {</b></p><p> MessageBox("源文件打開(kāi)
68、失敗!",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> CArchive srcAr(&srcFile,CArchive::load);</p><p> int fileLen=srcF
69、ile.GetLength();</p><p> CString detFilePath(" ",200);</p><p> m_detFile1.GetWindowText(detFilePath);</p><p> if(detFilePath.IsEmpty())</p><p><b> {
70、</b></p><p> MessageBox("你還沒(méi)有選擇目標(biāo)文件",NULL,MB_OK);</p><p><b> return;</b></p><p><b> }</b></p><p> CFile detFile;</p>
71、<p> if(detFile.Open(LPCTSTR(detFilePath),CFile::modeCreate|CFile::modeWrite)==0)</p><p><b> {</b></p><p> MessageBox("目標(biāo)文件打開(kāi)失敗!",NULL,MB_OK);</p><p>&
72、lt;b> return;</b></p><p><b> }</b></p><p> CString len;</p><p> len.Format("%d",fileLen);</p><p> if(fileLen<=100)</p><
73、;p><b> {</b></p><p> srcFile.Read((void *)ch,fileLen);</p><p> rc4.encryption(ch,key,strlen(key),strlen(ch));</p><p> detFile.Write((void *)ch,strlen(ch));</p&
74、gt;<p><b> }</b></p><p> if(fileLen>100)</p><p><b> {</b></p><p> int k=0,i=0;</p><p> k=fileLen/100;</p><p> for(i
75、=0;i<k;i++)</p><p><b> {</b></p><p> srcFile.Read((void *)ch,100);</p><p> rc4.encryption(ch,key,strlen(key),100);</p><p> detFile.Write((void *)ch,1
76、00);</p><p><b> }</b></p><p> k=fileLen%100;</p><p><b> if(k!=0)</b></p><p><b> {</b></p><p> srcAr.Read((void *)c
77、h,k);</p><p> rc4.encryption(ch,key,strlen(key),k);</p><p> detFile.Write((void *)ch,k);</p><p><b> }</b></p><p><b> }</b></p><p&
78、gt; MessageBox("恭喜您,解密成功!",NULL,MB_OK);</p><p> srcFile.Close();</p><p> detFile.Close();</p><p><b> 界面設(shè)計(jì):</b></p><p> m_tab.InsertItem(0,&qu
79、ot; 字符串加密 ");</p><p> m_tab.InsertItem(1," 文件加密 ");</p><p> cPage0.Create(IDD_PAGE0_DIALOG,GetDlgItem(IDC_TAB1));</p><p> cPage1.Create(IDD_PAGE1_DIALOG,GetDlgItem
80、(IDC_TAB1));</p><p> CRect rect; </p><p> m_tab.GetClientRect(&rect); </p><p> rect.top+=20; </p><p> rect.bottom-=4; </p><p> rect.left+=4;</p
81、><p> rect.right-=4; </p><p> cPage0.MoveWindow(&rect); </p><p> cPage1.MoveWindow(&rect); </p><p> cPage0.ShowWindow(TRUE); </p><p> m_tab.SetCu
82、rSel(0);</p><p> int CurSel; </p><p> CurSel=m_tab.GetCurSel(); </p><p> switch(CurSel) </p><p> { case 0: </p><p> cPage0.ShowWindow(TRUE); </p>
83、;<p> cPage1.ShowWindow(FALSE); </p><p><b> break; </b></p><p><b> case 1: </b></p><p> cPage0.ShowWindow(FALSE); </p><p> cPage1.Sh
84、owWindow(TRUE); </p><p><b> break; </b></p><p><b> case 2: </b></p><p> cPage0.ShowWindow(FALSE); </p><p> cPage1.ShowWindow(FALSE); </p&
85、gt;<p><b> break; </b></p><p> default: ; </p><p><b> } </b></p><p> *pResult = 0;</p><p><b> 五.總結(jié):</b></p><p
86、><b> 提出問(wèn)題:</b></p><p> RC4加密后的的長(zhǎng)度是 多少(例如MD5的加密后的長(zhǎng)度是固定的)? </p><p> 用RC4加密后的字符串長(zhǎng)度和原來(lái)的一樣嗎? </p><p> 用RC4加密后的字符串中間會(huì)不會(huì)出現(xiàn)\0? </p><p> 用strlen得到的長(zhǎng)度一定對(duì)嗎?<
87、;/p><p><b> 解決問(wèn)題:</b></p><p> 在一些場(chǎng)合,常需要用到一些簡(jiǎn)單的加密算法,這里的RC4就可以說(shuō)是最簡(jiǎn)單的一種。只要設(shè)置一個(gè)足夠強(qiáng)的密碼,就可以適用于一些非常簡(jiǎn)單的場(chǎng)合了。我是用來(lái)加密HTTP傳送的數(shù)據(jù)的。 </p><p> RC4函數(shù)(加密/解密) 其實(shí),RC4只有加密,將密文再加密
88、一次,就是解密了。 </p><p> GetKey函數(shù) 隨機(jī)字符串產(chǎn)生器,呵呵,為了方便,大多數(shù)加密算法都有一個(gè)隨機(jī)密碼產(chǎn)生器,我也就附帶一個(gè)了。 </p><p> ByteToHex函數(shù) 把字節(jié)碼轉(zhuǎn)為十六進(jìn)制碼,一個(gè)字節(jié)兩個(gè)十六進(jìn)制。研究發(fā)現(xiàn),十六進(jìn)制字符串非常適合在HTTP中傳輸,Base64中的某些字符會(huì)造成轉(zhuǎn)義,挺麻煩的。 </p>&
89、lt;p> HexToByte函數(shù) 把十六進(jìn)制字符串,轉(zhuǎn)為字節(jié)碼。服務(wù)器也按照十六進(jìn)制字符串的形式把數(shù)據(jù)傳回來(lái),這里就可以解碼啦。同時(shí),使用十六進(jìn)制字符串傳輸,避開(kāi)了傳輸過(guò)程中多國(guó)語(yǔ)言的問(wèn)題。 </p><p> Encrypt函數(shù) 把字符串經(jīng)RC4加密后,再把密文轉(zhuǎn)為十六進(jìn)制字符串返回,可直接用于傳輸。 Decrypt函數(shù) 直接密碼十六進(jìn)
90、制字符串密文,再解密,返回字符串明文。</p><p><b> 六.心得體會(huì):</b></p><p> 課程設(shè)計(jì)不僅是對(duì)已學(xué)知識(shí)的檢驗(yàn),更是對(duì)學(xué)生動(dòng)手能力以及綜合能力的鍛煉。</p><p> 在我們小組組長(zhǎng)的帶領(lǐng)下,以及通過(guò)全小組同學(xué)的共同努力,我們完成了課程設(shè)計(jì)的任務(wù)。在此期間,我們溫故了課堂上學(xué)過(guò)的知識(shí),還有查找各種資料,對(duì)RC
91、加密算法有了進(jìn)一步的了解和掌握。</p><p> 平常學(xué)習(xí)的知識(shí)點(diǎn),感覺(jué)已掌握,但是通過(guò)這次課程設(shè)計(jì)對(duì)自己學(xué)過(guò)的知識(shí)的檢閱,發(fā)現(xiàn)很多東西并不是想象的那么簡(jiǎn)單,做起來(lái)的時(shí)候還是會(huì)因?yàn)榇中拇笠鈱?dǎo)致課程設(shè)計(jì)中出現(xiàn)很多小的錯(cuò)誤。課程設(shè)計(jì)培養(yǎng)了自己的動(dòng)手能力,對(duì)以前學(xué)習(xí)的知識(shí)起到了好的鞏固作用,并且對(duì)以后課程學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)作用。</p><p> 通過(guò)整個(gè)小組成員的努力也學(xué)會(huì)了團(tuán)結(jié)與合作
92、,全小組的同學(xué)個(gè)個(gè)干勁十足,很好的完成了自己的任務(wù),成功地設(shè)計(jì)出了我們的RC加密算法系統(tǒng)。感謝老師為我們提供了這次課程設(shè)計(jì)的機(jī)會(huì)。通過(guò)此次課程設(shè)計(jì)鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)我也明白了很多事理。它使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。<
93、;/p><p><b> 七.致謝:</b></p><p> 在這次課程設(shè)計(jì)的完成過(guò)程中,我得到了許多人的幫助。</p><p> 首先我要感謝我的老師在課程設(shè)計(jì)上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報(bào)告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識(shí),而
94、且也開(kāi)闊了視野,提高了自己的設(shè)計(jì)能力。</p><p> 其次,我要感謝幫助過(guò)我的同學(xué),他也為我解決了不少我不太明白的設(shè)計(jì)上的難題。同時(shí)也感謝學(xué)院為我提供良好的做課程設(shè)計(jì)的環(huán)境。最后再一次感謝所有在設(shè)計(jì)中曾經(jīng)幫助過(guò)我的良師益友和同學(xué)</p><p><b> 八.參考文獻(xiàn):</b></p><p> [1] 梁亞聲等.計(jì)算機(jī)網(wǎng)絡(luò)安全教程
95、.第2版.北京:機(jī)械工業(yè)出版社,2008</p><p> [2] Willian Stallings著,孟慶樹(shù),王麗娜等譯.密碼編碼學(xué)與網(wǎng)絡(luò)安全.北京:電子工業(yè)出版社,2009</p><p> [3] 劉文濤.網(wǎng)絡(luò)安全編程技術(shù)與實(shí)例.北京:機(jī)械工業(yè)出版社2008</p><p> [4] Michael Welschenbach編著,趙振江,連國(guó)卿等譯.
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)安全課程設(shè)計(jì)--rc4加密算法的實(shí)現(xiàn)
- RC4加密算法硬件加速I(mǎi)P核的設(shè)計(jì).pdf
- 網(wǎng)絡(luò)安全中加密算法的研究.pdf
- 網(wǎng)絡(luò)安全加密算法分析與研究.pdf
- RC4算法的分析.pdf
- RC4算法的安全性分析.pdf
- 網(wǎng)絡(luò)安全課程設(shè)計(jì)---基于des加密的聊天程序
- 應(yīng)用于QR碼信息加密的RC4改進(jìn)算法研究.pdf
- RC4算法及其安全性分析.pdf
- 用于網(wǎng)絡(luò)安全的橢圓曲線(xiàn)加密算法研究——用橢圓曲線(xiàn)算法實(shí)現(xiàn)數(shù)字簽名.pdf
- des課程設(shè)計(jì)報(bào)告--網(wǎng)絡(luò)安全
- 網(wǎng)絡(luò)安全課程設(shè)計(jì)方案
- RC4流密碼算法的研究與改進(jìn).pdf
- 校園網(wǎng)絡(luò)安全課程設(shè)計(jì)
- 加密算法
- AES加密算法的FPGA實(shí)現(xiàn).pdf
- 嵌入RSA加密算法網(wǎng)絡(luò)加密卡驅(qū)動(dòng)程序的實(shí)現(xiàn).pdf
- 網(wǎng)絡(luò)通信安全中圖像加密算法的研究.pdf
- 基于密鑰流的RC4算法安全性分析與改進(jìn).pdf
- 信息安全概論--網(wǎng)絡(luò)安全的發(fā)展課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論