文档介绍:《网络安全技术》课程设计
一、课程设计的目的和意义
提高学生在网络安全方面综合运用理论知识解决实际问题的能力。使学生得到一次科学研究工作的初步训练,懂得网络加密/解密的方法和实现、网络相关安全工具的使用方法与网络攻击的防范。
二、设计内容
(1)使用高级语言(C、C++、C#语言)实现一个加密/解密程序,调试并通过该程序。
(2)破解Windows口令。
(3)获取本地用户的帐号和密码后进行远程控制。
三、设计步骤及代码
(C、C++、C#语言)实现一个加密/解密程序,调试并通过该程序。
算法描述
本程序采用对称算法中的序列密码。序列密码算法将明文逐位转换成密文。
它的原理是通过伪随机序列发生器产生性能优良的伪随机序列,使用该序列与明文信息流逐比特异或得到密文序列。所以,序列密码算法的安全强度完全取决于伪随机序列的好坏。伪随机序列发生器是指输入真随机的较短的密钥通过某种复杂的运算产生大量的伪随机位流。
程序源代码
#include <>
#include<>
int jiami();
int jiemi();
int display();
void main()
{
int choice=1;
while(choice!=4)
{
//system(""); /*清除屏幕上的所有显示,光标置于屏幕左
上角*/
printf("\t\t请选择你要做的操作:\n");/*功能菜单*/
printf("\t\t\\n");
printf("\t\t\\n");
printf("\t\t\\n");
printf("\t\t\\n");
printf("\t\t请键入你的选择:");
scanf("%d",&choice); /*条件选择,程序调用*/
if(choice==1)
jiami();
else if(choice==2)
jiemi();
else if(choice==3)
{
display();
getchar();
getchar();
}
}
}
int jiami() /*加密函数*/
{
FILE *fp;
char filename[100],ch,ch1;
int i=0,j=0;
printf("请输入要加密的文件:");
scanf("%s",filename) ;
if((fp=fopen(filename,"r+"))==NULL) /*打开文件,若不存在,输出错误信息*/
{
printf("\nerror opening file");
return 0;
}
while(!feof(fp)) /*检查文件是否结束,若未结束则得到文件
内容*/
{
ch=fgetc(fp);
j++;
}
rewind(fp); /*将文件中位置指针置于文件开头位置,清
除文件结束标志和错误标志*/
while(i<j-1)
{
ch=fgetc(fp); /*得到文件内容*/
ch=ch^26; /*得到的字符与26进行异或运算,加密*/
fseek(fp,i,0); /*将位置指针移到以0为基准,以i为位移
量的位置*/
fputc(ch,fp); /*将字符ch写入文件中*/
i++;
fseek(fp,i,0); /*将位置指针移到以0为基准,以i为位移
量的位置*/
}
/*printf("%c",ch=fgetc(fp));*/
fclose(fp); /*关闭文件*/
}
int jiemi() /*解密函数*/
{
FILE *fp;
char filename[100],ch,ch1;
int i=0,j=0;
printf("请输入要解密的文件:");
scanf("%s",filename) ;
if((fp=fopen(filename,"r+"))==NULL)
{
printf("\nerror opening file");
return 0;
}
while(!feof(fp))
{
ch=fgetc(fp);
j++;
}
rewind(fp); /*将文件中位置指针置于文件开头位置,清
除文件结束标志和错误标志*/
while(i<j-1)
{
ch=fgetc(fp);
ch=ch^26; /*得到的字符与26进行异