當前位置:首頁 » 課程大全 » C語言課程設計密鑰解密

C語言課程設計密鑰解密

發布時間: 2021-02-09 20:32:36

⑴ C語言程序題(加密解密)

#include<stdio.h>
#include<ctype.h>
voidjiami(char*s,intn)
{for(;*s;s++)
if(isalpha(*s))
*s=*s%32+n>25?*s+n-26:*s+n;
}
voidjiemi(char*s,intn)
{for(;*s;s++)
if(isalpha(*s))
*s=*s%32-n<1?*s+26-n:*s-n;
}
intmain()
{chars[200];
intn;
gets(s);
scanf("%d",&n);
jiami(s,n);
puts(s);
jiemi(s,n);
puts(s);
return0;
}

⑵ 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語言程序設計文件加密解密

#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語言課程設計——行列換位法加密與解密,那位大蝦幫幫小弟了!

/*
先輸入字元串,再輸入key.
VC編譯成功,調試完成.
*/

#include<stdio.h>
#include<string.h>
#include<time.h>
#define CODELEN 256 /*密文長度.*/

char *encode(char *dest,char *str,int key)
{
int i,j,len,len2,n=0;
len=strlen(str);

if((len % key)!=0) len2=len+ key-(len % key);
else len2=len;
srand(time(NULL));
for(i=len;i<len2;i++)
str[i]=(char)((rand() % 26) + (rand() % 1)*('A'-'a')+'a');
str[len2]=0;
for(j=0;j<key;j++)
for(i=0;i<len2/key;i++)
dest[n++]=str[i*key+j];
dest[n]=0;
str[len]=0;
return dest;
}

char *decode(char *dest,char *str,int key)
{
int i,j,len,n=0;
len=strlen(str);
if((len % key)!=0) return NULL;
len=len / key;
for(i=0;i<len;i++)
for(j=0;j<key;j++)
{

dest[n++]=str[j*len+i];
//printf("%c",dest[n-1]);
}
dest[n]=0;

return dest;
}

int main()
{
int key,i,j,len;
char str[CODELEN];
char xstr[CODELEN];
scanf("%s",str);
scanf("%d",&key);//輸入密鑰

printf("原始明文:%s\n",str);
printf("加密密文:");

encode(xstr,str,key);
printf("%s\n",xstr);

if(decode(str,xstr,key)!=NULL)
{printf("%s\n",str);}
else
{printf("NULL");}
}

⑸ 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語言設計一個加密 解密 密碼 的程序。

// 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語言課程設計——加密與解密!請高手幫忙!!!!

/* 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);/*關閉目標文件*/
}
我自己的

⑻ c語言課程設計,題目加密與解密,不需要太高深的,二百行左右的程序

一個文件里有數據 如:ABCDEFG
加密:open文件
建新文件
讀取原文件內容 處理內後 寫入新文件 直到原文件結容束
close兩個文件 新文件即為加密後文件
解密: 同理 反向處理數據 寫入新文件 解密成功

熱點內容
武漢大學學生會輔導員寄語 發布: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