信息安全实验报告信息安全概论课程设计_第1页
信息安全实验报告信息安全概论课程设计_第2页
信息安全实验报告信息安全概论课程设计_第3页
信息安全实验报告信息安全概论课程设计_第4页
信息安全实验报告信息安全概论课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州轻工业学院课程设计报告名称:信息安全概论指导教师:吉星、程立辉姓名:符豪学号:541307030112班级:网络工程13-011. 目的 数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。按加密算法分为专用密钥和公开密钥两种。数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。2. 题目使用C#编程语言,进行数据的加密与解密。系统基本功能描述如下:1

2、、 实现DES算法加密与解密功能。2、 实现TripleDES算法加密与解密功能。3、 实现MD5算法加密功能。4、 实现RC2算法加密与解密功能。5、 实现TripleDES算法加密与解密功能。6、 实现RSA算法加密与解密功能。3. 功能描述使用该软件在相应的文本框中输入明文,然后点击加密就会立即转化成相应的密文,非常迅速和方便,而且操作简单加流畅,非常好用。4. 需求分析加密软件发展很快,目前最常见的是透明加密,透明加密是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术。透明加密软件作为一种新的数据保密手段,自2005年上市以来,得到许多软件公司特别是制造业软件公司和传统

3、安全软件公司的热捧,也为广大需要对敏感数据进行保密的客户带来了希望。加密软件上市以来,市场份额逐年上升,同时,经过几年的实践,客户对软件开发商提出了更多的要求。与加密软件产品刚上市时前一两年各软件厂商各持一词不同,经过市场的几番磨炼,客户和厂商对透明加密软件有了更加统一的认识。5. 设计说明传统的周边防御,比如防火墙、入侵检测和防病毒软件,已经不再能够解决很多今天的数据保护问题。为了加强这些防御措施并且满足短期相关规范的要求,许多公司对于数据安全纷纷采取了执行多点产品的战术性措施。这种片面的部署计划确实可以为他们的数据提供一点点额外的保护,但是在管理上花费昂贵并且操作困难,这种做法并不能为未来

4、的发展提供一个清晰的框架。加密是确保数据安全最重要的环节。必须确保数据加密而不是仅仅依赖一个防护基础架构。对数据进行加密可以让数据不论是在网络中活动、在数据库和电脑中静止或者在工作站中被使用的时候都能防患于未然。6. 源代码主窗体: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespa

5、ce WindowsFormsApplication1 public partial class Form1 : Form public Form1() InitializeComponent(); private void md5ToolStripMenuItem_Click(object sender, EventArgs e) md5 md51 = new md5(); md51.Show(); private void dES加密解密ToolStripMenuItem_Click(object sender, EventArgs e) des des1 = new des(); des

6、1.Show(); private void rSA加密解密ToolStripMenuItem_Click(object sender, EventArgs e) rsa rsa1 = new rsa(); rsa1.Show(); private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e) help h = new help(); h.Show(); Cryptography类:using System;using System.Security.Cryptography;using System.IO;using S

7、ystem.Text;using System.Globalization;using System.Xml.Linq;using System.Collections.Generic;namespace WindowsFormsApplication1 class Encrypter /DES默认密钥向量 private static byte DES_IV = 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF ; public static string EncryptByMD5(string input) MD5 md5Hasher = MD5

8、.Create(); byte data = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(input); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i data.Length; i+) sBuilder.Append(datai.ToString(x2); return sBuilder.ToString(); public static string EncryptByDES(string input, string key) byte inputBytes = E

9、ncoding.UTF8.GetBytes(input); byte keyBytes = ASCIIEncoding.UTF8.GetBytes(key); byte encryptBytes = EncryptByDES(inputBytes, keyBytes, keyBytes); using (DES des = new DESCryptoServiceProvider() using (MemoryStream ms = new MemoryStream() using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryp

10、tor(), CryptoStreamMode.Write) using (StreamWriter writer = new StreamWriter(cs) writer.Write(inputBytes); string result = Convert.ToBase64String(encryptBytes); return result; public static byte EncryptByDES(byte inputBytes, byte key, byte IV) DES des = new DESCryptoServiceProvider(); des.Key = key;

11、 des.IV = IV; string result = string.Empty; using (MemoryStream ms = new MemoryStream() using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write) cs.Write(inputBytes, 0, inputBytes.Length); return ms.ToArray(); public static string DecryptByDES(string input, string

12、 key) byte inputBytes = Convert.FromBase64String(input); byte keyBytes = ASCIIEncoding.UTF8.GetBytes(key); byte resultBytes = DecryptByDES(inputBytes, keyBytes, keyBytes); string result = Encoding.UTF8.GetString(resultBytes); return result; public static byte DecryptByDES(byte inputBytes, byte key,

13、byte iv) DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.Key = key; des.IV = iv; using (MemoryStream ms = new MemoryStream(inputBytes) using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read) using (StreamReader reader = new StreamReader(cs) stri

14、ng result = reader.ReadToEnd(); return Encoding.UTF8.GetBytes(result); public static string EncryptString(string input, string sKey) byte data = Encoding.UTF8.GetBytes(input); using (DESCryptoServiceProvider des = new DESCryptoServiceProvider() des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV =

15、ASCIIEncoding.ASCII.GetBytes(sKey); ICryptoTransform desencrypt = des.CreateEncryptor(); byte result = desencrypt.TransformFinalBlock(data, 0, data.Length); return BitConverter.ToString(result); public static string DecryptString(string input, string sKey) string sInput = input.Split(-.ToCharArray()

16、; byte data = new bytesInput.Length; for (int i = 0; i sInput.Length; i+) datai = byte.Parse(sInputi, NumberStyles.HexNumber); using (DESCryptoServiceProvider des = new DESCryptoServiceProvider() des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); ICryptoTransf

17、orm desencrypt = des.CreateDecryptor(); byte result = desencrypt.TransformFinalBlock(data, 0, data.Length); return Encoding.UTF8.GetString(result); public static string EncryptByRSA(string plaintext, string publicKey) UnicodeEncoding ByteConverter = new UnicodeEncoding(); byte dataToEncrypt = ByteCo

18、nverter.GetBytes(plaintext); using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider() RSA.FromXmlString(publicKey); byte encryptedData = RSA.Encrypt(dataToEncrypt, false); return Convert.ToBase64String(encryptedData); public static string DecryptByRSA(string ciphertext, string privateKey

19、) UnicodeEncoding byteConverter = new UnicodeEncoding(); using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider() RSA.FromXmlString(privateKey); byte encryptedData = Convert.FromBase64String(ciphertext); byte decryptedData = RSA.Decrypt(encryptedData, false); return byteConverter.GetStri

20、ng(decryptedData); public static string HashAndSignString(string plaintext, string privateKey) UnicodeEncoding ByteConverter = new UnicodeEncoding(); byte dataToEncrypt = ByteConverter.GetBytes(plaintext); using (RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider() RSAalg.FromXmlString(p

21、rivateKey); /使用SHA1进行摘要算法,生成签名 byte encryptedData = RSAalg.SignData(dataToEncrypt, new SHA1CryptoServiceProvider(); return Convert.ToBase64String(encryptedData); public static bool VerifySigned(string plaintext, string SignedData, string publicKey) using (RSACryptoServiceProvider RSAalg = new RSACry

22、ptoServiceProvider() RSAalg.FromXmlString(publicKey); UnicodeEncoding ByteConverter = new UnicodeEncoding(); byte dataToVerifyBytes = ByteConverter.GetBytes(plaintext); byte signedDataBytes = Convert.FromBase64String(SignedData); return RSAalg.VerifyData(dataToVerifyBytes, new SHA1CryptoServiceProvi

23、der(), signedDataBytes); public static KeyValuePair CreateRSAKey() RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); string privateKey = RSA.ToXmlString(true); string publicKey = RSA.ToXmlString(false); return new KeyValuePair(publicKey, privateKey); public static byte GetBytes(string input) string sInput = input.Split(-.ToCharArray(); byte inputBytes = new bytesInput.Length; for (int i = 0; i sInput.Length; i+) inputBytesi = byte.Parse(sInputi, NumberStyles.HexNumber); return inputBytes; using System;using System.Collections.Generic;using Sy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论