当前位置:首页 » 课程大全 » c加密解密课程设计

c加密解密课程设计

发布时间: 2021-02-13 18:02:29

❶ 文件加密,C语言课程设计

这个我不会。

给文件加密,我推荐您可以下载超级加密3000试试。

超级加密3000有超快和最强的文件、文件夹加密功能、数据保护功能,文件夹、文件的粉碎删除以及文件夹伪装等功能。

❷ C语言(c++)加密解密程序的设计

/*根据题来意,本程序只对自小写英文字母加解密*/

#include<stdio.h>

#include<string.h>

int main(){

char mon[200];

char mm[200];

printf("明文:");

gets(mon);

printf("密码:");

gets(mm);

int i1=strlen(mon);

int i0=strlen(mm);

for(int i=0;i<i1;i++){

mon[i]+=1+mm[i%i0]-'a';

if(mon[i]>'z')mon[i]-=26;

}

printf("密文:%s ",mon);

for(int i=0;i<i1;i++){

mon[i]-=1+mm[i%i0]-'a';

if(mon[i]<'a')mon[i]+=26;

}

printf("解密:%s",mon);

return 0;

}

❸ 用C语言设计一个加密 解密 密码 的程序。

// playFair 加密 你参考下 ...
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#define x 50
char MiYao[x],PassWord[x],AddPass[x],Table[5][5],Map[25];
bool Visit[27]={false};
char English[27]="abcdefghijklmnopqrstuvwxyz";
void Input()
{
printf("请输入密钥:\t"); scanf("%s",MiYao);
printf("请输入待加密密码:\t"); scanf("%s",PassWord);
}
void Fun_5x5()
{
int count = 0,V =0;
/*标记密钥内字符为: true*/
for(int i=0;MiYao[i]!='\0';i++)
if(strchr(English,MiYao[i])!=NULL)
Visit[strchr(English,MiYao[i])-English] = true;
/*执行密钥矩阵操作 并标记已使用字符:true*/
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
{
if(count<strlen(MiYao))
Table[i][j] = MiYao[count++];
else
{
while(Visit[V] != false) V++;
Table[i][j] = English[V];
Visit[V++] = true;
}
}
puts("∞∞∞密钥矩阵为∞∞∞");
for(int i=0;i<5;i++)
{ for(int j=0;j<5;j++)
printf("%3c",Table[i][j]);
puts("");
}
puts("∞∞∞∞∞∞∞∞∞∞∞");

}
int IsVisited(char ch)
{
return Visit[strchr(English,ch)-English]; //false 未出现过
}
void TabletoMap()
{ int count=0;
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
Map[count++]=Table[i][j];
Map[count]='\0';
}
void Judge()
{
int len = strlen(PassWord),i,j,k;
memset(AddPass,0,sizeof(char));
/*一对对去字母,剩下单个字母,则不变化,直接放入加密串中.*/
if(len%2){
AddPass[len-1] = PassWord[len-1];
len -=1;
}
/*一对中 密钥矩阵中 存在矩阵 eg.ab 先输出a同行顶点在输出b同行顶点*/
int row1,low1,row2,low2,a1,a2;
for(i=0;i<len;i+=2)
{
char c1,c2;
c1 = PassWord[i];
c2 = PassWord[i+1];
/*一对中 两字母相同 无变化*/
/*一对中 有字母不在密钥矩阵中 无变化*/
if(c1 == c2 || ( !IsVisited(c1)||!IsVisited(c2)))
{ AddPass[i] = c1;
AddPass[i+1]=c2;
}else{
a1 = strchr(Map,c1)-Map;
row1 = a1/5; low1 = a1%5;
a2 = strchr(Map,c2)-Map;
row2 = a2/5; low2 = a2%5;
/*一对中 字符出现在同行或同列 简单swap字符*/
if(row1 == row2 || low1 == low2)
{
AddPass[i] = c2;
AddPass[i+1] = c1;
}else{
AddPass[i] = Table[row1][low2];
AddPass[i+1] = Table[row2][low1];
}
}
}AddPass[len+1]='\0';
puts("加密后字符串:");
puts(AddPass);
puts("原串是:");
puts(PassWord);
}
int main()
{
Input();
Fun_5x5();
TabletoMap();
Judge();
return 0;
}

❹ c语言程序设计文件加密解密

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

main()
{
void sc(char *fp,char *key,int Flen,int Klen);
FILE *fp;
char *pBuf,filename[20],key[20],ch;

printf("请输入选择:A、加密 B、解密 C退出\n");
ch=getchar();
while(ch!='c'&&ch!='C')
{
if(ch=='a'||=='A'||ch=='b'||ch=='B')
{
printf("请输入要打开的文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{printf("无法打开文件,请注意输入后缀!\n");<br/> exit(0);<br/> }

fseek(fp,0,SEEK_END);
int len=ftell(fp);
pBuf=new char[len+1];
rewind(fp);
fread(pBuf,1,len,fp);
pBuf[len]=0;
printf("%s\n",pBuf);
fclose(fp);

printf("请输入加密/解密的密码:\n");
scanf("%s",key);
sc(pBuf,key,len,strlen(key));

printf("请输入保存加密文件的文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"wb"))==NULL)
{printf("无法保存文件,请注意磁盘是否已满!\n");<br/> exit(0);<br/> }
else
fwrite(pBuf,1,len,fp);
fclose(fp);
printf("请输入选择:A、加密 B、解密 C退出\n");
}
else {
printf("输入错误,请重新输入\n");
}
ch=getchar();
ch=getchar();
}
}
void sc(char *fp,char *key,int Flen,int Klen)
{int i,j,k;<br/>for(i=0;i<Flen;i+=Klen)<br/>for(j=i,k=0;k<Klen;j++,k++)<br/>fp[j]^=key[k];<br/><br/>fp[i]='\0';<br/>printf("%s\n",fp);<br/>}

❺ c语言课程设计 文本文件加密技术

以前写过一个差不多的,不知道你们能不能用得上,初始密码123

#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
#include"string.h"

voidmenu();//菜单
voidchuLi();//处理
voidQu();//读取
voidopenPassword();//打开密码
charpassword[]="123";//密码
enums{JIAMI,JIEMI,DUQU}state;//处理状态(加密,解密,读取)

//加密算法
voidcalculate(char*c)
{
switch(state)
{
caseJIAMI:
*c=*c^'0';
*c=*c+100;
break;
caseJIEMI:
caseDUQU:
*c=*c-100;
*c=*c^'0';
break;
}
}

intmain()
{
openPassword();
for(;;)
menu();
}

//打开密码
voidopenPassword()
{
charinput[50];

printf("请输入密码:");
scanf("%s",input);

//判断密码是否正确
while(strcmp(input,password)!=0)
{
printf("密码错误,请重新输入:");
scanf("%s",input);
}
}

//菜单
voidmenu()
{
intselect;
system("cls");
printf("1.加密文本 ");
printf("2.解密文本 ");
printf("3.读取文本 ");
printf("请选择:");
scanf("%d",&select);
system("cls");

//判断输入是否正确
while(select<1||select>3)
{
printf("输入有误,请重新输入:");
scanf("%d",&select);
}

switch(select)
{
case1:
state=JIAMI;
chuLi();
break;
case2:
state=JIEMI;
chuLi();
break;
case3:
state=DUQU;
Qu();
break;
}
}

//处理
voidchuLi()
{
FILE*file;//源文件
FILE*fileL;//临时文件
charfileName[50];//文件名
charcommand[50];//命令语句
charc;//临时处理变量

//打开源文件
do
{
if(state==JIAMI)
printf("请输入要加密的文件:");
elseif(state==JIEMI)
printf("请输入要解密的文件:");
scanf("%s",fileName);
file=fopen(fileName,"r");
if(file==NULL)
printf("文件不存在,");
}while(file==NULL);

//进行加解密
fileL=fopen("临时文件.txt","w");
while(!feof(file))
{
c=fgetc(file);
calculate(&c);
fputc(c,fileL);
}
fclose(file);
fclose(fileL);

//删除源文件
sprintf(command,"del%s",fileName);
system(command);

//重命名新文件
sprintf(command,"rename临时文件.txt%s",fileName);
system(command);

if(state==JIAMI)
printf("加密成功");
elseif(state==JIEMI)
printf("解密成功");
getch();
}

//读取
voidQu()
{
FILE*file;
charfileName[50];
charc;

//打开源文件
do
{
printf("请输入要读取的加密文件:");
scanf("%s",fileName);
file=fopen(fileName,"r");
if(file==NULL)
printf("文件名不存在,");
}while(file==NULL);

//把文件输出到屏幕上
system("cls");
while(!feof(file))
{
c=fgetc(file);
calculate(&c);
printf("%c",c);
}
fclose(file);
getch();
}

❻ C语言设计一个简单的加密解密程序

C语言设计一个简单的加密解密程序如下:
加密程序代码:
#include<stdio.h>
main()
{
char
c,filename[20];
FILE
*fp1,*fp2;
printf("请输入待加密的文件名:\n");
scanf("%s",filename);
fp1=fopen(filename,"r");
fp2=fopen("miwen.txt","w");
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代码:
#include<stdio.h>
#include<string.h>
main()
{
char
c,filename[20];
char
yanzhengma[20];
FILE
*fp1,*fp2;
printf("请输入待解密文件名:\n");
scanf("%s",filename);
printf("请输入验证码:\n");
scanf("%s",yanzhengma);
if(strcmp(yanzhengma,"shan")==0)
{
fp1=fopen(filename,"r");
fp2=fopen("yuanwen.txt","w");
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
else
{
printf("验证码错误!请重新输入:\n");
scanf("%s",filename);
}
}

❼ c语言课程设计报告怎么写文件加密解密

表呢
如果是acm 可能细节要自己改一下
代码仅供参考
#include<iostream>
using namespace std;
int main()
{
int a[58],b[58];
a['0']=7;
a['1']=5;
a['2']=9;
a['3']=1;
a['4']=3;
a['5']=6;
a['6']=8;
a['7']=0;
a['8']=2;
a['9']=4;
b['0']=7;
b['1']=3;
b['2']=8;
b['3']=4;
b['4']=9;
b['5']=1;
b['6']=5;
b['7']=0;
b['8']=6;
b['9']=2;
int m;
cin>>m;
while(m--)
{
int c;
int n;
char s[1000];
cin>>c;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>s[i];
}
if(c==1)
{
for(int i=0;i<n;i++)
cout<<a[s[i]]<<' ';

}
else if(c==2)
{
for(int i=0;i<n;i++)
cout<<b[s[i]]<<' ';
}
else
cout<<"error"<<endl;
if(m!=0)cout<<"\n==========\n";
}
return 0;
}

❽ c语言课程设计,题目加密与解密,不需要太高深的,二百行左右的程序

一个文件里有数据 如:ABCDEFG
加密:open文件
建新文件
读取原文件内容 处理内后 写入新文件 直到原文件结容束
close两个文件 新文件即为加密后文件
解密: 同理 反向处理数据 写入新文件 解密成功

❾ 求C语言课程设计——加密与解密!请高手帮忙!!!!

/* Turbo 2.0 pass. give file a password! */

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>

void dofile(char *in_fname,char *pwd,char *out_fname);/*对文件进行加密的具体函数*/

void main(int argc,char *argv[])/*定义main()函数的命令行参数*/
{
char in_fname[30];/*用户输入的要加密的文件名*/
char out_fname[30];
char pwd[8];/*用来保存密码*/

if(argc!=4){/*容错处理*/
printf("\nIn-fname:\n");
gets(in_fname);/*得到要加密的文件名*/

printf("Password:\n");
gets(pwd);/*得到密码*/

printf("Out-file:\n");
gets(out_fname);/*得到加密后你要的文件名*/

dofile(in_fname,pwd,out_fname);
}
else{/*如果命令行参数正确,便直接运行程序*/
strcpy(in_fname,argv[1]);
strcpy(pwd,argv[2]);
strcpy(out_fname,argv[3]);
dofile(in_fname,pwd,out_fname);
}

}

/*加密子函数开始*/
void dofile(char *in_fname,char *pwd,char *out_file)
{
FILE *fp1,*fp2;
register char ch;
int j=0;
int j0=0;

fp1=fopen(in_fname,"rb");
if(fp1==NULL){
printf("cannot open in-file.\n");
exit(1);/*如果不能打开要加密的文件,便退出程序*/
}
fp2=fopen(out_file,"wb");
if(fp2==NULL){
printf("cannot open or create out-file.\n");
exit(1);/*如果不能建立加密后的文件,便退出*/
}
while(pwd[++j0]);
ch=fgetc(fp1);

/*加密算法开始*/
while(!feof(fp1)){
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*异或后写入fp2文件*/
ch=fgetc(fp1);
}
fclose(fp1);/*关闭源文件*/
fclose(fp2);/*关闭目标文件*/
}
我自己的

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919