信息安全实验报告信息安全概论课程设计

合集下载

信息安全概论实验报告

信息安全概论实验报告
程序如下:
…………
for (round = 0; round < 8; round++)
{
work= ROR(right, 4) ^ *keys++;
leftt ^= SP7[work & 0x3fL]
^ SP5[(work >> 8) & 0x3fL]
^ SP3[(work >> 16) & 0x3fL]
char ptHexNum[16];//用16位字符数组保存16位16进制数
gets(ptHexNum);
unsigned char ptBinHignNum[8],ptBinLowNum[8];
//将16位16进制数共64位按内存模型转变成8位字符数组ptNumtoCh中
unsigned char ptNumtoCh[9];
case'd':
case'D':ptBinLowNum[i/2]=char(0x0D);break;
case'e':
case'E':ptBinLowNum[i/2]=char(0x0E);break;
case'f':
case'F':ptBinLowNum[i/2]=char(0x0F);break;
^ SP2[(work >> 24) & 0x3fL];
printf("L(%d) = %X\t\t",round*2+1,leftt);
printf("R(%d) = %X\n",round*2+1,right);

关于信息安全的课程设计

关于信息安全的课程设计

关于信息安全的课程设计一、教学目标本课程旨在帮助学生了解和掌握信息安全的基本知识和技能,提高他们在日常学习和生活中保护个人信息和数据的安全意识。

通过本课程的学习,学生将能够:1.理解信息安全的概念、意义和重要性。

2.掌握个人信息和数据保护的基本原则和方法。

3.学会识别和防范常见的信息安全风险和威胁。

4.能够运用所学的知识和技能,保护自己的信息安全,提高信息安全防范能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.信息安全概述:介绍信息安全的概念、意义和重要性,以及个人信息和数据保护的基本原则。

2.信息安全风险与威胁:介绍常见的信息安全风险和威胁,如黑客攻击、病毒感染、信息泄露等,并分析其危害和防范方法。

3.个人信息与数据保护:介绍保护个人信息和数据的方法和技巧,如密码保护、数据备份、避免泄露个人信息等。

4.信息安全工具与技术:介绍常用的信息安全工具和技术,如防火墙、杀毒软件、加密技术等,并演示其使用方法。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过讲解信息安全的基本概念、原理和知识点,使学生掌握信息安全的基础知识。

2.讨论法:学生就信息安全问题进行讨论,培养学生的思考和分析问题的能力。

3.案例分析法:通过分析真实的信息安全案例,使学生了解信息安全风险和威胁,提高防范意识。

4.实验法:让学生亲自动手进行信息安全实验,掌握信息安全工具和技术的使用方法。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威、实用的信息安全教材,为学生提供系统的学习材料。

2.参考书:推荐学生阅读信息安全相关的参考书籍,扩大知识面。

3.多媒体资料:制作和收集信息安全相关的多媒体资料,如PPT、视频、动画等,提高学生的学习兴趣。

4.实验设备:准备计算机、网络设备等实验器材,为学生提供实践操作的机会。

信息安全概论

信息安全概论

河南工业大学实验报告课程信息安全概论实验名称实验四网络端口扫描院系___信息科学与工程学院____ 专业班级 _ 计科0805班 __姓名______唐广亮_____ 学号________200848140523 _指导老师:王峰日期一.实验目的1。

学习端口扫描技术基本原理,理解端口扫描技术在网络攻防中的作用。

2。

通过上机实验,熟练掌握目前最为常用的网络扫描工具Nmap的使用,并能利用工具扫描漏洞,更好的弥补安全不足。

二.实验内容及要求1. 阅读nmap文档,了解命令行参数.2. 选择局域网中的主机作为扫描对象(不可非法扫描Internet中的主机),使用Nmap 提供的默认配置文件,以及自行设定相关参数,对指定范围的主机进行PING扫描、TCP connect扫描、UDP扫描、秘密扫描等,记录并分析扫描结果.三.实验过程及结果(说明:实验结果可以是运行画面的抓屏,抓屏图片要尽可能的小。

)1. 端口扫描的原理。

(1)对指定范围的主机进行PING扫描从扫描结果可得:在对121.195.0.0/24进行扫描时,总共有256个IP地址,但只有一个IP处于host up 状态,其余的处于host down 状态.(2)-sS (TCP SYN scan)参数扫描如图所示:从扫描结果可得:网易网站(http://www。

),即121。

195.178。

238总共开通了23个端口,这些端口有的是OPEN 状态,有的是FILTERED,但它们都是TCP端口,因为SYN扫描是基于TCP的.(3)-sT (TCP connect scan)参数扫描211.69。

207.72如图所示:从扫描结果可得:-sT 总共扫描出来29个端口,—sT扫描比—sS扫描多扫描出来6个端口,有可能是因为-sS与—sT判断端口打开的标准不同,-sT对回复一个rst|syn包就认为对方的端口是开着的,而-sS要对方回复多个rst|syn才认为对方的端口是开放的。

网络信息安全实验报告 (2)

网络信息安全实验报告 (2)

网络信息安全实验报告 (2)网络信息安全实验报告 (2)实验背景网络信息安全是保护计算机网络系统免受未经授权的访问、破坏、修改或泄露的活动的过程。

随着互联网的普及和信息技术的迅猛发展,网络信息安全问题日益突出,对于保护个人隐私和企业机密至关重要。

对网络信息安全进行实验和研究具有重要意义。

实验目的本实验旨在:1. 了解常见的网络攻击和防御手段;2. 通过实践操作,掌握网络信息安全的基本原理和技术;3. 培养信息安全意识和应对能力。

实验内容1. 网络攻击类型在实验中,我们了解了以下常见的网络攻击类型:攻击DDoS 攻击网络钓鱼恶意软件攻击SQL 注入攻击社会工程学攻击2. 防御手段我们学习了一些常见的网络信息安全防御手段:防火墙权限控制数据加密安全补丁管理网络流量监控安全培训和意识教育3. 实验操作在本次实验中,我们实践操作了以下内容:1. 实验了如何使用防火墙设置网络安全规则;2. 通过模拟 DDoS 攻击,了网络防御能力;3. 分析了实际情况下的网络钓鱼攻击,并提出了相应的防御策略;4. 研究了恶意软件的传播方式和防御措施;5. 了解了 SQL 注入攻击的原理,并编写了防御代码;6. 学习了社会工程学攻击的案例,并讨论了防范措施。

实验结果与分析通过本次实验,我们掌握了网络信息安全的基本原理和技术,并实践了相应的操作。

我们深入了解了各种网络攻击类型和防御手段,提高了对网络信息安全的认识和应对能力。

实验通过本次实验,我们进一步认识到网络信息安全的重要性,并学习了一些常见的防御手段。

在实践操作中,我们发现防御网络攻击需要综合运用多种技术手段,并不断更新和升级,以应对不断变化和进化的威胁。

,我们也认识到网络信息安全是一个复杂而庞大的领域,需要不断深入研究和学习,提高自身的技术水平和综合能力。

改进建议在今后的实验中,可以进一步拓展实验内容,涉及更多的网络攻击类型和防御手段。

可以加强实践操作,提供更多的场景和案例,培养实际应用能力。

信息安全课程设计报告

信息安全课程设计报告

信息安全课程设计报告一、课程目标知识目标:1. 理解信息安全的基本概念,掌握信息安全的关键技术,如加密、认证和防护措施。

2. 学习网络安全的基本原理,了解网络攻击手段及其防范方法。

3. 掌握信息安全法律法规和道德规范,提高信息安全意识。

技能目标:1. 能够运用所学知识分析和解决实际生活中的信息安全问题。

2. 学会使用加密工具保护个人隐私和重要数据,提高数据安全性。

3. 能够评估网络环境的安全性,采取相应措施防范潜在风险。

情感态度价值观目标:1. 培养学生热爱科学、追求真理的精神,激发学习信息安全知识的兴趣。

2. 增强学生的国家安全意识,树立正确的网络安全观念。

3. 培养学生的团队协作精神,提高沟通与表达能力。

课程性质:本课程为选修课,旨在帮助学生了解信息安全知识,提高网络安全防护能力。

学生特点:学生为初中年级,具有一定的计算机操作基础,对信息安全有一定的好奇心,但知识储备有限。

教学要求:结合学生特点和课程性质,采用案例教学、实践操作、小组讨论等方法,注重培养学生的实际操作能力和信息安全意识。

二、教学内容1. 信息安全基本概念:包括信息安全定义、重要性、面临的威胁与挑战等,对应教材第一章内容。

2. 加密技术:介绍对称加密、非对称加密和混合加密等,以教材第二章为基础,结合实际案例进行分析。

3. 认证技术:讲解数字签名、身份认证等方法,参考教材第三章,结合实际应用场景进行讲解。

4. 网络安全防护措施:包括防火墙、入侵检测和病毒防护等,依据教材第四章,通过实践操作让学生掌握防护技巧。

5. 信息安全法律法规与道德规范:学习我国相关法律法规,了解网络安全道德规范,对应教材第五章内容。

6. 网络攻击与防范:分析常见网络攻击手段,如钓鱼、木马等,学习防范策略,以教材第六章为基础展开教学。

7. 实践操作:安排加密软件使用、安全防护软件配置等实践环节,巩固理论知识,提高实际操作能力。

教学大纲安排:第一周:信息安全基本概念第二周:加密技术第三周:认证技术第四周:网络安全防护措施第五周:信息安全法律法规与道德规范第六周:网络攻击与防范第七周:实践操作与总结教学内容注重科学性和系统性,结合教材章节进行合理安排,确保学生能够循序渐进地掌握信息安全知识。

信息安全概论报告

信息安全概论报告

精心整理信息安全概论课程报告一、课程内容简介1.“国内外信息安全研究现状与发展趋势”(1)“信息安全”的定义“信息安全”在当前可被理解为在既定的安全要求的条件下,信息系统抵御意外事件或恶意行为的能力。

而信息安全事件则会危及信息系统提供的服务的机密性、完整性、可用性、非否认性和可控性。

(2)“信息安全”发展的四个阶段语,一旦恶意诋毁国家领导人形象、诋毁国家组织形象的言论大肆传播,将对国人价值取向的产生十分恶劣的影响,进而威胁到国家安全。

3.网上信息引发社会危机。

4.有组织的网络犯罪。

网络犯罪有隐蔽性强、难追踪这一显着特点,一旦发生有组织的网络犯罪,将会对国民的财产、信息安全和国家的信息安全造成严重威胁。

(4)我国信息网络安全状况二、“社会工程学”概述社会工程学指的是通过与他人交往,来直接或者间接获得机密信息。

在任何的安全体系里,人都是最薄弱的一环,所以是骇客攻击的重点,所有社会工程学攻击都建立在使人决断产生认知偏差的基础上。

骇客也许伪装成某个弱势的女性,或者诈称是你多年未见的老朋友,或者以交易中介的形式出现,等等,来套取你的信息,进而进精心整理精心整理行下一步的攻击。

根据wikipedia的介绍,社会工程学攻击有这些形式:首先是假托(pretexing)。

某天你突然接到一个电话,说你的xxx亲人突然出事,在xxx医院治疗,速速汇款至某某账号。

你心里一惊,连忙联系你的亲人,发现电话不通,于是在精神高度紧张中颤巍巍汇了钱过去。

假托就要起到这样一种效果,通过合情合理的假象,紧张的气氛,让你陷入一种心理学称之为"tunnel vision"的情境中,你的眼睛只能看到隧道终点的那丝光明。

当然,例子中的骗术广为人知,可能对大部分人都不奏效了,但难保骇客建立另外一种你没遇到过的情境,让你陷入到“tunnel vision”中。

比如在这个大一刚刚结束的暑假,我的好朋友得到了一个去德国交流的机会,并在这次的经历中结识了一位非常要好的朋友X,在回国没几天后,那位X便通过QQ向我的好朋友求助,说有一笔钱要转给别人,但X自己因为某些原因转不了,想通过我的好友将钱转到他人卡中,我的好朋友因为很了解也很信任X,便一口答应了下来,X也将转款成功的信息发给我的好友看,但由于金额竟有2万之多,难免让我的好友心生怀疑,而且这2万在短时间内无法转入到我好友账号中,X因为事情急迫想要让我的好友先用自己的有。

信息安全实验总结报告

信息安全实验总结报告

信息安全实验总结报告信息安全实验总结报告篇一:信息安全实验报告课程名称:信息安全实验名称:共五次实验班级:姓名:同组人:指导教师评定:签名:实验一木马攻击与防范一、实验目的通过对木马的练习,使读者理解和掌握木马传播和运行的机制;通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识。

二、实验原理木马的全称为特洛伊木马,源自古希腊神话。

木马是隐藏在正常程序中的具有特殊功能的恶意代码,是具备破坏、删除和修改文件、发送密码、记录键盘、实施DoS攻击甚至完全控制计算机等特殊功能的后门程序。

它隐藏在目标计算机里,可以随计算机自动启动并在某一端口监听来自控制端的控制信息。

1.木马的特性(1)伪装性 (2)隐藏性 (3)破坏性(4)窃密性2.木马的入侵途径木马入侵的主要途径是通过一定的欺骗方法,如更改图标、把木马文件与普通文件合并,欺骗被攻击者下载并执行做了手脚的木马程序,就会把木马安装到被攻击者的计算机中。

3.木马的种类(1)按照木马的发展历程,可以分为4个阶段:第1代木马是伪装型病毒,第2代木马是网络传播型木马,第3代木马在连接方式上有了改进,利用了端口反弹技术,例如灰鸽子木马,第4代木马在进程隐藏方面做了较大改动,让木马服务器端运行时没有进程,网络操作插入到系统进程或者应用进程中完成,例如广外男生木马。

(2)按照功能分类,木马又可以分为:破坏型木马,主要功能是破坏并删除文件;服务型木马; DoS攻击型木马;远程控制型木马三、实验环境两台运行Windows 2000/XP的计算机,通过网络连接。

使用“冰河”和“广外男生”木马作为练习工具。

四、实验内容和结果任务一“冰河”木马的使用1.使用“冰河”对远程计算机进行控制我们在一台目标主机上植入木马,在此主机上运行G_Server,作为服务器端;在另一台主机上运行G_Client,作为控制端。

打开控制端程序,单击快捷工具栏中的“添加主机”按钮,弹出如图1-5所示对对话框。

课程设计信息安全

课程设计信息安全

课程设计信息安全一、教学目标本课程旨在让学生了解信息安全的基本概念,掌握信息加密、身份验证、网络安全等基本技能,提高学生的信息安全意识和自我保护能力。

具体目标如下:1.知识目标:(1)了解信息安全的基本概念、原理和关键技术。

(2)掌握信息加密算法、身份验证方法、网络安全协议等。

(3)了解常见信息安全威胁和攻击手段,以及相应的防护措施。

2.技能目标:(1)能够使用常见信息安全工具,如加密软件、防火墙、杀毒软件等。

(2)具备基本的网络安全防护能力,如设置无线网络密码、修改系统密码等。

(3)能够分析简单的信息安全问题,并提出合理的解决方案。

3.情感态度价值观目标:(1)增强学生的信息安全意识,提高自我保护能力。

(2)培养学生对国家网络安全的关注,增强社会责任感。

(3)培养学生团结协作、积极探索的精神风貌。

二、教学内容本课程的教学内容主要包括以下几个方面:1.信息安全基本概念:信息安全的重要性、信息安全保障体系、信息安全技术分类等。

2.信息加密与身份验证:加密算法、哈希函数、数字签名、身份验证方法等。

3.网络安全:网络攻击手段、防火墙、入侵检测系统、虚拟专用网络等。

4.操作系统安全:操作系统漏洞、病毒与恶意代码、系统安全防护策略等。

5.数据安全:数据备份与恢复、数据加密与解密、数据隐私保护等。

6.实践操作:使用加密软件、防火墙、杀毒软件等工具进行实际操作。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解信息安全的基本概念、原理和技术。

2.案例分析法:分析真实的信息安全案例,提高学生的实际操作能力。

3.实验法:让学生动手实践,加深对信息安全知识的理解。

4.讨论法:分组讨论信息安全问题,培养学生的团队协作能力。

四、教学资源为实现课程目标,我们将采用以下教学资源:1.教材:选用权威、实用的信息安全教材,为学生提供系统性的知识学习。

2.参考书:提供丰富的信息安全相关书籍,拓展学生的知识面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

郑州轻工业学院课程设计报告名称:信息安全概论指导教师:吉星、程立辉姓名:符豪学号:541307030112班级:网络工程13-011.目的数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。

其密钥的值是从大量的随机数中选取的。

按加密算法分为专用密钥和公开密钥两种。

数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。

2.题目使用C#编程语言,进行数据的加密与解密。

系统基本功能描述如下:1、实现DES算法加密与解密功能。

2、实现TripleDES算法加密与解密功能。

3、实现MD5算法加密功能。

4、实现RC2算法加密与解密功能。

5、实现TripleDES算法加密与解密功能。

6、实现RSA算法加密与解密功能。

3.功能描述使用该软件在相应的文本框中输入明文,然后点击加密就会立即转化成相应的密文,非常迅速和方便,而且操作简单加流畅,非常好用。

4.需求分析加密软件发展很快,目前最常见的是透明加密,透明加密是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术。

透明加密软件作为一种新的数据保密手段,自2005年上市以来,得到许多软件公司特别是制造业软件公司和传统安全软件公司的热捧,也为广大需要对敏感数据进行保密的客户带来了希望。

加密软件上市以来,市场份额逐年上升,同时,经过几年的实践,客户对软件开发商提出了更多的要求。

与加密软件产品刚上市时前一两年各软件厂商各持一词不同,经过市场的几番磨炼,客户和厂商对透明加密软件有了更加统一的认识。

5.设计说明传统的周边防御,比如防火墙、入侵检测和防病毒软件,已经不再能够解决很多今天的数据保护问题。

为了加强这些防御措施并且满足短期相关规范的要求,许多公司对于数据安全纷纷采取了执行多点产品的战术性措施。

这种片面的部署计划确实可以为他们的数据提供一点点额外的保护,但是在管理上花费昂贵并且操作困难,这种做法并不能为未来的发展提供一个清晰的框架。

加密是确保数据安全最重要的环节。

必须确保数据加密而不是仅仅依赖一个防护基础架构。

对数据进行加密可以让数据不论是在网络中活动、在数据库和电脑中静止或者在工作站中被使用的时候都能防患于未然。

6.源代码主窗体:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1{publicpartialclass Form1 : Form{public Form1(){InitializeComponent();}privatevoid md5ToolStripMenuItem_Click(object sender, EventArgs e){md5 md51 = new md5();md51.Show();}privatevoid dES加密解密ToolStripMenuItem_Click(object sender, EventArgs e){des des1 = new des();des1.Show();}privatevoid rSA加密解密ToolStripMenuItem_Click(object sender, EventArgs e){rsa rsa1 = new rsa();rsa1.Show();}privatevoid帮助ToolStripMenuItem_Click(object sender, EventArgs e){help h = new help();h.Show();}}}Cryptography类:using System;using System.Security.Cryptography;using System.IO;using System.Text;using System.Globalization;using System.Xml.Linq;using System.Collections.Generic;namespace WindowsFormsApplication1{class Encrypter{//DES默认密钥向量privatestaticbyte[] DES_IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };publicstaticstring EncryptByMD5(string input){MD5 md5Hasher = MD5.Create();byte[] data = puteHash(Encoding.UTF8.GetBytes(input));StringBuilder sBuilder = new StringBuilder();for (int i = 0; i < data.Length; i++){sBuilder.Append(data[i].ToString("x2"));}return sBuilder.ToString();}publicstaticstring EncryptByDES(string input, string key){byte[] inputBytes = Encoding.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.CreateEncryptor(), CryptoStreamMode.Write)){using (StreamWriter writer = new StreamWriter(cs)){writer.Write(inputBytes);}}}}string result = Convert.ToBase64String(encryptBytes);return result;}publicstaticbyte[] EncryptByDES(byte[] inputBytes, byte[] key, byte[] IV) {DES des = new DESCryptoServiceProvider();des.Key = key;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();}}publicstaticstring DecryptByDES(string input, string 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;}publicstaticbyte[] DecryptByDES(byte[] inputBytes, byte[] key, 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)){string result = reader.ReadToEnd();return Encoding.UTF8.GetBytes(result);}}}}publicstaticstring EncryptString(string input, string sKey){byte[] data = Encoding.UTF8.GetBytes(input);using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()){des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);ICryptoTransform desencrypt = des.CreateEncryptor();byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length); return BitConverter.ToString(result);}}publicstaticstring DecryptString(string input, string sKey){string[] sInput = input.Split("-".ToCharArray());byte[] data = newbyte[sInput.Length];for (int i = 0; i < sInput.Length; i++){data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber); }using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()){des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); ICryptoTransform desencrypt = des.CreateDecryptor();byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length); return Encoding.UTF8.GetString(result);}}publicstaticstring EncryptByRSA(string plaintext, string publicKey){UnicodeEncoding ByteConverter = new UnicodeEncoding();byte[] dataToEncrypt = ByteConverter.GetBytes(plaintext);using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()){RSA.FromXmlString(publicKey);byte[] encryptedData = RSA.Encrypt(dataToEncrypt, false);return Convert.ToBase64String(encryptedData);}}publicstaticstring DecryptByRSA(string ciphertext, string privateKey){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.GetString(decryptedData);}}publicstaticstring HashAndSignString(string plaintext, string privateKey){UnicodeEncoding ByteConverter = new UnicodeEncoding();byte[] dataToEncrypt = ByteConverter.GetBytes(plaintext);using (RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider()){RSAalg.FromXmlString(privateKey);//使用SHA1进行摘要算法,生成签名byte[] encryptedData = RSAalg.SignData(dataToEncrypt, new SHA1CryptoServiceProvider()); return Convert.ToBase64String(encryptedData);}}publicstaticbool VerifySigned(string plaintext, string SignedData, string publicKey) {using (RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider()){RSAalg.FromXmlString(publicKey);UnicodeEncoding ByteConverter = new UnicodeEncoding();byte[] dataToVerifyBytes = ByteConverter.GetBytes(plaintext);byte[] signedDataBytes = Convert.FromBase64String(SignedData);return RSAalg.VerifyData(dataToVerifyBytes, new SHA1CryptoServiceProvider(), signedDataBytes);}}publicstatic KeyValuePair<string, string> CreateRSAKey(){RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();string privateKey = RSA.ToXmlString(true);string publicKey = RSA.ToXmlString(false);returnnew KeyValuePair<string, string>(publicKey, privateKey);}publicstaticbyte[] GetBytes(string input){string[] sInput = input.Split("-".ToCharArray());byte[] inputBytes = newbyte[sInput.Length];for (int i = 0; i < sInput.Length; i++){inputBytes[i] = byte.Parse(sInput[i], NumberStyles.HexNumber); }return inputBytes;}}}using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Security.Cryptography;namespace WindowsFormsApplication1{publicpartialclass md5 : Form{public md5(){InitializeComponent();}privatevoid label1_Click(object sender, EventArgs e){}privatevoid md5_Load(object sender, EventArgs e){}privatevoid button1_Click(object sender, EventArgs e){if (textBox1.Text != ""){textBox2.Text = Encrypter.EncryptByMD5(textBox1.Text); }elseMessageBox.Show("不能为空");}}}7.测试报告8.心得体会通过本次实验,我学习到了数据在互联网中的传输并不是绝对的安全。

相关文档
最新文档