信息安全概论课程设计之web入侵技术Word格式文档下载.docx
- 文档编号:18429126
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:15
- 大小:203.40KB
信息安全概论课程设计之web入侵技术Word格式文档下载.docx
《信息安全概论课程设计之web入侵技术Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《信息安全概论课程设计之web入侵技术Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
基本要求:
使用高级程序设计语言来编写程序,并写出功能设计和课程设计任务书,最后讲解设计方案,演示实现结果。
主要参考资料:
《信息安全概论》作者:
李剑张然出版社:
机械工业出版社。
《精通C#数据库开发》作者:
王华杰李律松孙一波出版社:
清华大学出版社。
完成期限:
指导教师签名:
课程负责人签名:
2011年06月日
目录
一、课程设计题目4
二、运行环境4
三、算法设计的思想4
四、算法的流程图6
五、核心源代码7
1、代替算法7
2、换位算法8
3、DES算法9
4、MD5算法10
5、RSA算法10
六、运行结果分析12
1、程序主界面12
2、代替算法运行界面12
3、换位算法运行界面13
4、DES算法运行界面14
5、MD5算法运行界面14
6、DES算法运行界面15
七、收获及体会15
一、课程设计题目
二、运行环境
操作系统为WindowsXP
开发环境为MicrosoftVisualStudio2008
编程语言为C#语言
三、算法设计的思想
本程序一共包含五种加密算法,分别是代替密码、换位密码、DES、MD5和RSA,其中除MD5加密过程不可逆,其余的都可通过一定算法实现其解密过程。
1、在代替密码中按照字符数字的ASCII进行排序,然后对明文的ASCII依次加上N个值,即得密文;
2、在换位密码中把明文密码存放在一个n*m阶矩阵中,明文的读取方式是先行后列,加密过程即更改读取方式,如先列后行;
3、在DES中,明文按照64位进行分组,另外要设置密钥一值,用于对数据加密或解密;
4、MD5算法则以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值,即实现了加密,两外该加密算法不可逆。
5、RSA的原理思想是任意选取两个不同的大质数p和q,计算乘积r=p*q;
然后任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。
确定解密密钥d:
d*e=1modulo(p-1)*(q-1)根据e、p和q可以容易地计算出d。
公开整数r和e,但是不公开d;
将明文P加密为密文C,计算方法为:
C=Pemodulor;
将密文C解密为明文P,计算方法为:
P=Cdmodulor因为只根据r和e(不是p和q)要计算出d是不可能的。
所以,任何人都可对明文进行加密,但只有授权用户才可对密文解密。
四、算法的流程图
五、核心源代码
1、代替算法
privatestringreplaceMethod()
{
stringoutstr="
"
;
intnum=2;
if(param!
="
)
num=Convert.ToInt32(param);
}
if(toEncry)
char[]temp=inText.ToCharArray();
for(inti=0;
i<
temp.Length;
i++)
if(65<
=temp[i]&
&
temp[i]<
=90)
temp[i]=Convert.ToChar(65+(temp[i]-65+num)%26);
elseif(97<
=122)
temp[i]=Convert.ToChar(97+(temp[i]-97+num)%26);
outstr+=Convert.ToString(temp[i]);
else
char[]temp;
stringoneStr;
for(intj=1;
j<
26;
j++)
oneStr="
temp=outText.ToCharArray();
temp[i]=Convert.ToChar(65+(temp[i]-65+j)%26);
temp[i]=Convert.ToChar(97+(temp[i]-97+j)%26);
oneStr+=Convert.ToString(temp[i]);
outstr+=oneStr+Environment.NewLine;
returnoutstr;
2、换位算法
privatestringmoveMethod()
intwidth=2;
width=Convert.ToInt32(param);
temp=inText.ToCharArray();
intlength=temp.Length;
width;
for(intj=i;
length;
j+=width)
outstr+=temp[j];
intcount=outText.Length%width;
stringoutTextTemp=outText;
if(count!
=0)
if(count==1)
introwLength=outText.Length/width;
outTextTemp=outText.Substring(0,rowLength*2+1);
outTextTemp+="
"
outTextTemp+=outText.Substring(rowLength*2+1);
outTextTemp=outText+="
temp=outTextTemp.ToCharArray();
intcolumn=length/width;
column;
j+=column)
3、DES算法
privatestringDESMethod()
stringsKey=param;
DESCryptoServiceProviderdes=newDESCryptoServiceProvider();
//把字符串放到byte数组中
//原来使用的UTF8编码,我改成Unicode编码了,不行
byte[]inputByteArray=Encoding.Default.GetBytes(inText);
//byte[]inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt);
//建立加密对象的密钥和偏移量
//原文使用ASCIIEncoding.ASCII方法的GetBytes方法
//使得输入密码必须输入英文文本
des.Key=ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV=ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStreamms=newMemoryStream();
CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);
//Writethebytearrayintothecryptostream
//(Itwillendupinthememorystream)
cs.Write(inputByteArray,0,inputByteArray.Length);
cs.FlushFinalBlock();
//Getthedatabackfromthememorystream,andintoastring
StringBuilderret=newStringBuilder();
foreach(bytebinms.ToArray())
//Formatashex
ret.AppendFormat("
{0:
X2}"
b);
ret.ToString();
returnret.ToString();
try
//Puttheinputstringintothebytearray
byte[]inputByteArray=newbyte[outText.Length/2];
for(intx=0;
x<
outText.Length/2;
x++)
inti=(Convert.ToInt32(outText.Substring(x*2,2),16));
inputByteArray[x]=(byte)i;
//建立加密对象的密钥和偏移量,此值重要,不能修改
CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write);
//Flushthedatathroughthecryptostreamintothememorystream
//Getthedecrypteddatabackfromthememorystream
//建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象
returnSystem.Text.Encoding.Default.GetString(ms.ToArray());
catch
return"
4、MD5算法
privatestringMD5Method()
//FormsAuthentication.HashPasswordForStoringInConfigFile(inText,"
MD5"
).ToLower();
MD5md5=newMD5CryptoServiceProvider();
byte[]data=Encoding.Default.GetBytes(inText);
byte[]md5data=md5.ComputeHash(data);
md5.Clear();
stringstr="
md5data.Length-1;
str+=md5data[i].ToString("
x"
).PadLeft(2,'
0'
);
returnstr.ToUpper();
5、RSA算法
privatestringRASMethod()
stringstr2;
RSACryptoServiceProviderprovider=newRSACryptoServiceProvider();
provider.FromXmlString(pubKey);
byte[]bytes=newUnicodeEncoding().GetBytes(inText);
str2=Convert.ToBase64String(provider.Encrypt(bytes,false));
catch(Exceptionexception)
throwexception;
returnstr2;
provider.FromXmlString(prvKey);
byte[]rgb=Convert.FromBase64String(outText);
byte[]buffer2=provider.Decrypt(rgb,false);
str2=newUnicodeEncoding().GetString(buffer2);
六、运行结果分析
1、程序主界面
2、代替算法运行界面
(加密)
(解密)
因解密过程中循环位数不可知,所以得到结果很多,但其中一定有一个是正确的。
3、换位算法运行界面
解密界面同上
4、DES算法运行界面
解密过程同上,如果密钥不对,得到的明文一定不对。
5、MD5算法运行界面
因为MD5没有相应的解密,所以只有加密算法。
6、DES算法运行界面
DES算法密钥如上图。
加密解密截图一样。
七、收获及体会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 概论 课程设计 web 入侵 技术