2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論