版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..轻工业学院课程设计报告名称:信息平安概论指导教师:吉星、程立辉:
符豪学号:2班级:网络工程13-01目的数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和承受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。按加密算法分为专用密钥和公开密钥两种。数据加密技术是网络中最根本的平安技术,主要是通过对网络中传输的信息进展数据加密来保障其平安性,这是一种主动平安防御策略,用很小的代价即可为信息提供相当大的平安保护。题目使用C#编程语言,进展数据的加密与解密。系统根本功能描述如下:实现DES算法加密与解密功能。实现TripleDES算法加密与解密功能。实现MD5算法加密功能。实现RC2算法加密与解密功能。实现TripleDES算法加密与解密功能。实现RSA算法加密与解密功能。功能描述使用该软件在相应的文本框中输入明文,然后点击加密就会立即转化成相应的密文,非常迅速和方便,而且操作简单加流畅,非常好用。需求分析加密软件开展很快,目前最常见的是透明加密,透明加密是一种根据要求在操作系统层自动地对写入存储介质的数据进展加密的技术。透明加密软件作为一种新的数据手段,自2005年上市以来,得到许多软件公司特别是制造业软件公司和传统平安软件公司的热捧,也为广阔需要对敏感数据进展的客户带来了希望。加密软件上市以来,市场份额逐年上升,同时,经过几年的实践,客户对软件开发商提出了更多的要求。与加密软件产品刚上市时前一两年各软件厂商各持一词不同,经过市场的几番磨炼,客户和厂商对透明加密软件有了更加统一的认识。设计说明传统的周边防御,比方防火墙、入侵检测和防病毒软件,已经不再能够解决很多今天的数据保护问题。为了加强这些防御措施并且满足短期相关规的要求,许多公司对于数据平安纷纷采取了执行多点产品的战术性措施。这种片面的部署方案确实可以为他们的数据提供一点点额外的保护,但是在管理上花费昂贵并且操作困难,这种做法并不能为未来的开展提供一个清晰的框架。加密是确保数据平安最重要的环节。必须确保数据加密而不是仅仅依赖一个防护根底架构。对数据进展加密可以让数据不管是在网络中活动、在数据库和电脑中静止或者在工作站中被使用的时候都能防患于未然。源代码主窗体: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默认密钥向量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进展摘要算法,生成签名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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年废旧金属销售合同范本2篇
- 门窗服务代办合同范例
- 配件销售回收合同范例
- 鞋厂样品采购合同范例
- 土工测试合同范例
- 国航正式合同范例
- 花艺团购合同范例
- 奶茶连锁加盟合同范例
- 香港保险合同范例
- 招商与股合同范例
- 税务管理专项测试题附答案
- 人工智能营销(第2版)课件全套 阳翼 第1-8章 迈入人工智能领域-人工智能营销的伦理与法律问题
- 2024-2025一年级上册科学教科版2.4《气味告诉我们》课件
- 语文大单元视域下的任务群教学实践
- 融入TGFU教学法的TPSR教学模式在小学篮球课程中的德育效果研究
- 医院感染管理委员会模板
- DL∕T 5028.2-2015 电力工程制图标准 第2部分 机械部分
- 预算管理一体化系统内控体系指引
- 传统地权结构及其演变 -
- 老旧小区改造工程竣工验收质量评估报告
- 2024年山东省青岛中德生态园(青岛国际经济合作区)管委会选聘52人历年(高频重点提升专题训练)共500题附带答案详解
评论
0/150
提交评论