版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
郑州轻工业学院课程设计报告名称:信息安全概论指导教师:吉星、程立辉姓名:符豪学号:541307030112班级:网络工程13-011.目的数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。按加密算法分为专用密钥和公开密钥两种。数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。2.题目使用C#编程语言,进行数据的加密与解密。系统基本功能描述如下:1、实现DES算法加密与解密功能。2、实现TripleDES算法加密与解密功能。3、 实现MD5算法加密功能。4、 实现RC2算法加密与解密功能。5、 实现TripleDES算法加密与解密功能。6、 实现RSA算法加密与解密功能。功能描述使用该软件在相应的文本框中输入明文,然后点击加密就会立即转化成相应的密文,非常迅速和方便,而且操作简单加流畅,非常好用。需求分析加密软件发展很快,目前最常见的是透明加密,透明加密是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术。透明加密软件作为一种新的数据保密手段,自2005年上市以来,得到许多软件公司特别是制造业软件公司和传统安全软件公司的热捧,也为广大需要对敏感数据进行保密的客户带来了希望。加密软件上市以来,市场份额逐年上升,同时,经过几年的实践,客户对软件开发商提出了更多的要求。与加密软件产品刚上市时前一两年各软件厂商各持一词不同,经过市场的几番磨炼,客户和厂商对透明加密软件有了更加统一的认识。5.设计说明传统的周边防御,比如防火墙、入侵检测和防病毒软件,已经不再能够解决很多今天的数据保护问题。为了加强这些防御措施并且满足短期相关规范的要求,许多公司对于数据安全纷纷采取了执行多点产品的战术性措施。这种片面的部署计划确实可以为他们的数据提供一点点额外的保护,但是在管理上花费昂贵并且操作困难,这种做法并不能为未来的发展提供一个清晰的框架。加密是确保数据安全最重要的环节。必须确保数据加密而不是仅仅依赖一个防护基础架构。对数据进行加密可以让数据不论是在网络中活动、在数据库和电脑中静止或者在工作站中被使用的时候都能防患于未然。6.源代码主窗体:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsFormsApplication1{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}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默认密钥向量privatestaticbyte[]DES_IV={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};publicstaticstringEncryptByMD5(stringinput){MD5md5Hasher=MD5.Create();byte[]data=md5Hasher.ComputeHash(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("-".ToCharArrayO);byte[]data=newbyte[slnput.Length];for(inti=0;i<sInput.Length;i++){data[i]=byte.Parse(slnput[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进行摘要算法,生成签名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("-".ToCharArrayO);byte[]inputBytes=newbyte[slnput.Length];for(inti=0;i<sInput.Length;i++){NumberStyles.HexNumber);inputBytes[i]=byteNumberStyles.HexNumber);}returninputBytes;}}}usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSyste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 明确旅游产品设计的方法和原则
- 阳光面对挫折主题班会
- 化妆品培训部年度总结
- 医疗团队展示
- 《光的干涉定》课件
- 适老智能家居系统界面
- 孵化场安全培训
- 社区工作地区发展模式社会工作专业教学案例宝典
- 永远的尹雪艳
- 透视-基础规律-1729733985977
- 思想道德与法治智慧树知到答案章节测试2023年聊城大学
- 中小学无人机创客实验室建设实施方案
- 高温高湿测试报告
- 淀粉基聚合物胶束作为药物载体的综述,高分子材料论文
- 七年级语文上册课件:18《狼》(共82张PPT)
- 生产加工工艺流程及加工工艺要求
- GB/T 702-2017热轧钢棒尺寸、外形、重量及允许偏差
- GB/T 37522-2019爆炸物安全检查与处置通用术语
- GB/T 18034-2000微型热电偶用铂铑细偶丝规范
- GB 6142-2008禾本科草种子质量分级
- 智慧医疗大数据BI分析平台建设方案
评论
0/150
提交评论