版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
..輕工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告名稱:信息平安概論指導(dǎo)教師:吉星、程立輝:
符豪學(xué)號(hào):2班級(jí):網(wǎng)絡(luò)工程13-01目的數(shù)據(jù)加密技術(shù)要求只有在指定的用戶或網(wǎng)絡(luò)下,才能解除密碼而獲得原來(lái)的數(shù)據(jù),這就需要給數(shù)據(jù)發(fā)送方和承受方以一些特殊的信息用于加解密,這就是所謂的密鑰。其密鑰的值是從大量的隨機(jī)數(shù)中選取的。按加密算法分為專用密鑰和公開(kāi)密鑰兩種。數(shù)據(jù)加密技術(shù)是網(wǎng)絡(luò)中最根本的平安技術(shù),主要是通過(guò)對(duì)網(wǎng)絡(luò)中傳輸?shù)男畔⑦M(jìn)展數(shù)據(jù)加密來(lái)保障其平安性,這是一種主動(dòng)平安防御策略,用很小的代價(jià)即可為信息提供相當(dāng)大的平安保護(hù)。題目使用C#編程語(yǔ)言,進(jìn)展數(shù)據(jù)的加密與解密。系統(tǒng)根本功能描述如下:實(shí)現(xiàn)DES算法加密與解密功能。實(shí)現(xiàn)TripleDES算法加密與解密功能。實(shí)現(xiàn)MD5算法加密功能。實(shí)現(xiàn)RC2算法加密與解密功能。實(shí)現(xiàn)TripleDES算法加密與解密功能。實(shí)現(xiàn)RSA算法加密與解密功能。功能描述使用該軟件在相應(yīng)的文本框中輸入明文,然后點(diǎn)擊加密就會(huì)立即轉(zhuǎn)化成相應(yīng)的密文,非常迅速和方便,而且操作簡(jiǎn)單加流暢,非常好用。需求分析加密軟件開(kāi)展很快,目前最常見(jiàn)的是透明加密,透明加密是一種根據(jù)要求在操作系統(tǒng)層自動(dòng)地對(duì)寫入存儲(chǔ)介質(zhì)的數(shù)據(jù)進(jìn)展加密的技術(shù)。透明加密軟件作為一種新的數(shù)據(jù)手段,自2005年上市以來(lái),得到許多軟件公司特別是制造業(yè)軟件公司和傳統(tǒng)平安軟件公司的熱捧,也為廣闊需要對(duì)敏感數(shù)據(jù)進(jìn)展的客戶帶來(lái)了希望。加密軟件上市以來(lái),市場(chǎng)份額逐年上升,同時(shí),經(jīng)過(guò)幾年的實(shí)踐,客戶對(duì)軟件開(kāi)發(fā)商提出了更多的要求。與加密軟件產(chǎn)品剛上市時(shí)前一兩年各軟件廠商各持一詞不同,經(jīng)過(guò)市場(chǎng)的幾番磨煉,客戶和廠商對(duì)透明加密軟件有了更加統(tǒng)一的認(rèn)識(shí)。設(shè)計(jì)說(shuō)明傳統(tǒng)的周邊防御,比方防火墻、入侵檢測(cè)和防病毒軟件,已經(jīng)不再能夠解決很多今天的數(shù)據(jù)保護(hù)問(wèn)題。為了加強(qiáng)這些防御措施并且滿足短期相關(guān)規(guī)的要求,許多公司對(duì)于數(shù)據(jù)平安紛紛采取了執(zhí)行多點(diǎn)產(chǎn)品的戰(zhàn)術(shù)性措施。這種片面的部署方案確實(shí)可以為他們的數(shù)據(jù)提供一點(diǎn)點(diǎn)額外的保護(hù),但是在管理上花費(fèi)昂貴并且操作困難,這種做法并不能為未來(lái)的開(kāi)展提供一個(gè)清晰的框架。加密是確保數(shù)據(jù)平安最重要的環(huán)節(jié)。必須確保數(shù)據(jù)加密而不是僅僅依賴一個(gè)防護(hù)根底架構(gòu)。對(duì)數(shù)據(jù)進(jìn)展加密可以讓數(shù)據(jù)不管是在網(wǎng)絡(luò)中活動(dòng)、在數(shù)據(jù)庫(kù)和電腦中靜止或者在工作站中被使用的時(shí)候都能防患于未然。源代碼主窗體:usingSystem;usingSystem.Collections.Generic;usingSystem.ponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsFormsApplication1{publicpartialclassForm1:Form{publicForm1(){Initializeponent();}privatevoidmd5ToolStripMenuItem_Click(objectsender,EventArgse){md5md51=newmd5();md51.Show();}privatevoiddES加密解密ToolStripMenuItem_Click(objectsender,EventArgse){desdes1=newdes();des1.Show();}privatevoidrSA加密解密ToolStripMenuItem_Click(objectsender,EventArgse){rsarsa1=newrsa();rsa1.Show();}privatevoid幫助ToolStripMenuItem_Click(objectsender,EventArgse){helph=newhelp();h.Show();}}}Cryptography類:usingSystem;usingSystem.Security.Cryptography;usingSystem.IO;usingSystem.Text;usingSystem.Globalization;usingSystem.Xml.Linq;usingSystem.Collections.Generic;namespaceWindowsFormsApplication1{classEncrypter{//DES默認(rèn)密鑰向量privatestaticbyte[]DES_IV={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};publicstaticstringEncryptByMD5(stringinput){MD5md5Hasher=MD5.Create();byte[]data=md5Hasher.puteHash(Encoding.UTF8.GetBytes(input));StringBuildersBuilder=newStringBuilder();for(inti=0;i<data.Length;i++){sBuilder.Append(data[i].ToString("x2"));}returnsBuilder.ToString();}publicstaticstringEncryptByDES(stringinput,stringkey){byte[]inputBytes=Encoding.UTF8.GetBytes(input);byte[]keyBytes=ASCIIEncoding.UTF8.GetBytes(key);byte[]encryptBytes=EncryptByDES(inputBytes,keyBytes,keyBytes);using(DESdes=newDESCryptoServiceProvider()){using(MemoryStreamms=newMemoryStream()){using(CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write)){using(StreamWriterwriter=newStreamWriter(cs)){writer.Write(inputBytes);}}}}stringresult=Convert.ToBase64String(encryptBytes);returnresult;}publicstaticbyte[]EncryptByDES(byte[]inputBytes,byte[]key,byte[]IV){DESdes=newDESCryptoServiceProvider();des.Key=key;des.IV=IV;stringresult=string.Empty;using(MemoryStreamms=newMemoryStream()){using(CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write)){cs.Write(inputBytes,0,inputBytes.Length);}returnms.ToArray();}}publicstaticstringDecryptByDES(stringinput,stringkey){byte[]inputBytes=Convert.FromBase64String(input);byte[]keyBytes=ASCIIEncoding.UTF8.GetBytes(key);byte[]resultBytes=DecryptByDES(inputBytes,keyBytes,keyBytes);stringresult=Encoding.UTF8.GetString(resultBytes);returnresult;}publicstaticbyte[]DecryptByDES(byte[]inputBytes,byte[]key,byte[]iv){DESCryptoServiceProviderdes=newDESCryptoServiceProvider();des.Key=key;des.IV=iv;using(MemoryStreamms=newMemoryStream(inputBytes)){using(CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Read)){using(StreamReaderreader=newStreamReader(cs)){stringresult=reader.ReadToEnd();returnEncoding.UTF8.GetBytes(result);}}}}publicstaticstringEncryptString(stringinput,stringsKey){byte[]data=Encoding.UTF8.GetBytes(input);using(DESCryptoServiceProviderdes=newDESCryptoServiceProvider()){des.Key=ASCIIEncoding.ASCII.GetBytes(sKey);des.IV=ASCIIEncoding.ASCII.GetBytes(sKey);ICryptoTransformdesencrypt=des.CreateEncryptor();byte[]result=desencrypt.TransformFinalBlock(data,0,data.Length);returnBitConverter.ToString(result);}}publicstaticstringDecryptString(stringinput,stringsKey){string[]sInput=input.Split("-".ToCharArray());byte[]data=newbyte[sInput.Length];for(inti=0;i<sInput.Length;i++){data[i]=byte.Parse(sInput[i],NumberStyles.HexNumber);}using(DESCryptoServiceProviderdes=newDESCryptoServiceProvider()){des.Key=ASCIIEncoding.ASCII.GetBytes(sKey);des.IV=ASCIIEncoding.ASCII.GetBytes(sKey);ICryptoTransformdesencrypt=des.CreateDecryptor();byte[]result=desencrypt.TransformFinalBlock(data,0,data.Length);returnEncoding.UTF8.GetString(result);}}publicstaticstringEncryptByRSA(stringplaintext,stringpublicKey){UnicodeEncodingByteConverter=newUnicodeEncoding();byte[]dataToEncrypt=ByteConverter.GetBytes(plaintext);using(RSACryptoServiceProviderRSA=newRSACryptoServiceProvider()){RSA.FromXmlString(publicKey);byte[]encryptedData=RSA.Encrypt(dataToEncrypt,false);returnConvert.ToBase64String(encryptedData);}}publicstaticstringDecryptByRSA(stringciphertext,stringprivateKey){UnicodeEncodingbyteConverter=newUnicodeEncoding();using(RSACryptoServiceProviderRSA=newRSACryptoServiceProvider()){RSA.FromXmlString(privateKey);byte[]encryptedData=Convert.FromBase64String(ciphertext);byte[]decryptedData=RSA.Decrypt(encryptedData,false);returnbyteConverter.GetString(decryptedData);}}publicstaticstringHashAndSignString(stringplaintext,stringprivateKey){UnicodeEncodingByteConverter=newUnicodeEncoding();byte[]dataToEncrypt=ByteConverter.GetBytes(plaintext);using(RSACryptoServiceProviderRSAalg=newRSACryptoServiceProvider()){RSAalg.FromXmlString(privateKey);//使用SHA1進(jìn)展摘要算法,生成簽名byte[]encryptedData=RSAalg.SignData(dataToEncrypt,newSHA1CryptoServiceProvider());returnConvert.ToBase64String(encryptedData);}}publicstaticboolVerifySigned(stringplaintext,stringSignedData,stringpublicKey){using(RSACryptoServiceProviderRSAalg=newRSACryptoServiceProvider()){RSAalg.FromXmlString(publicKey);UnicodeEncodingByteConverter=newUnicodeEncoding();byte[]dataToVerifyBytes=ByteConverter.GetBytes(plaintext);byte[]signedDataBytes=Convert.FromBase64String(SignedData);returnRSAalg.VerifyData(dataToVerifyBytes,newSHA1CryptoServiceProvider(),signedDataBytes);}}publicstaticKeyValuePair<string,string>CreateRSAKey(){RSACryptoServiceProviderRSA=newRSACryptoServiceProvider();stringprivateKey=RSA.ToXmlString(true);stringpublicKey=RSA.ToXmlString(false);returnnewKeyValuePair<string,string>(publicKey,privateKey);}publicstaticbyte[]GetBytes(stringinput){string[]sInput=input.Split("-".ToCharArray());byte[]inputBytes=newbyte[sInput.Length];for(inti=0;i<sInput.Length;i++){inputBytes[i]=byte.Parse(sInput[i],NumberStyles.HexNumber);}returninputBytes;}}}usingSystem;usingSystem.Co
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師自學(xué)計(jì)劃范文
- 幼兒園園長(zhǎng)工作每月提示11月-幼兒園園務(wù)計(jì)劃
- 物業(yè)公司出納工作計(jì)劃模板
- 2025銷售工作計(jì)劃的范文
- 區(qū)殘聯(lián)某年工作初步計(jì)劃
- 2025-2025學(xué)年度上學(xué)期小學(xué)學(xué)校工作計(jì)劃
- 1月秘書個(gè)人工作計(jì)劃
- 《氣血循環(huán)機(jī)》課件
- 《行政的執(zhí)行及手段》課件
- 合同備案的法律規(guī)定
- 醫(yī)院感染管理委員會(huì)模板
- DL∕T 5028.2-2015 電力工程制圖標(biāo)準(zhǔn) 第2部分 機(jī)械部分
- 預(yù)算管理一體化系統(tǒng)內(nèi)控體系指引
- 傳統(tǒng)地權(quán)結(jié)構(gòu)及其演變 -
- 老舊小區(qū)改造工程竣工驗(yàn)收質(zhì)量評(píng)估報(bào)告
- 2024年山東省青島中德生態(tài)園(青島國(guó)際經(jīng)濟(jì)合作區(qū))管委會(huì)選聘52人歷年(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 2024年正規(guī)借款合同標(biāo)準(zhǔn)版本(2篇)
- 實(shí)變函數(shù)智慧樹(shù)知到期末考試答案章節(jié)答案2024年華南理工大學(xué)
- 食品營(yíng)養(yǎng)學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年華南理工大學(xué)
- 高教版【中職專用】《中國(guó)特色社會(huì)主義》期末試卷+答案
- 汽車技工的汽車維修技能培訓(xùn)
評(píng)論
0/150
提交評(píng)論