A. c語言加密解密

^#include <stdio.h>
#include <cstdlib>
main()
{
char password[10],len,i=0,ch,c;
char infile[20];
FILE * in;
printf("FILE NAME:");
scanf("%s",infile);
if((in=fopen(infile,"r+"))==NULL)
{
printf("ERROR!");
exit(0);
}
printf("KEY:");
scanf("%s",password);
len=0;
while(password[len]!=0)len++;
while((ch=fgetc(in))!=EOF)
{
c=ch^password[i];
fseek(in,-1,SEEK_CUR);
fputc(c,in);
fseek(in,ftell(in),SEEK_SET);
i++;
if(i==len)i=0;
}
fclose(in);
printf("\nNow open the TEXT.\n",infile);
}

B. c語言加密解密演算法

這里使用的是按位加密,按ASCII碼進行加密的演算法自己寫個,很容易的。
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void
dofile(char
*in_fname,char
*pwd,char
*out_fname);/*對文件進行加密的具體函數*/
void
usage(char
*name);
void
main(int
argc,char
*argv[])/*定義main()函數的命令行參數*/
{
char
in_fname[30];/*用戶輸入的要加密的文件名*/
char
out_fname[30];
char
pwd[10];/*用來保存密碼*/
if(argc!=4)
{/*容錯處理*/
usage(argv[0]);
printf("\nIn-fname:\n");
gets(in_fname);/*得到要加密的文件名*/
while(*in_fname==NULL)
{
printf("\nIn-fname:\n");
gets(in_fname);
}
printf("Password
6-8:\n");
gets(pwd);/*得到密碼*/
while(*pwd==NULL
||
strlen(pwd)>8
||
strlen(pwd)<6)
{
printf("Password
6-8:\n");
gets(pwd);
}
printf("Out-file:\n");
gets(out_fname);/*得到加密後你要的文件名*/
while(*in_fname==NULL)
{
printf("Out-file:\n");
gets(out_fname);
}
while(!strcmp(in_fname,out_fname))
{
printf("文件名不能和源文件相同\n");
printf("Out-file:\n");
gets(out_fname);
}
dofile(in_fname,pwd,out_fname);
printf("加密成功,解密請再次運行程序\n");
}
else
{/*如果命令行參數正確,便直接運行程序*/
strcpy(in_fname,argv[1]);
strcpy(pwd,argv[2]);
strcpy(out_fname,argv[3]);
while(*pwd==NULL
||
strlen(pwd)>8
||
strlen(pwd)<6)
{
printf("Password
faied!\n");
printf("Password
6-8:\n");
gets(pwd);
}
while(!strcmp(in_fname,out_fname))
{
printf("文件名不能和源文件相同\n");
printf("Out-file:\n");
gets(out_fname);
while(*in_fname==NULL)
{
printf("Out-file:\n");
gets(out_fname);
}
}
dofile(in_fname,pwd,out_fname);
printf("加密成功,解密請再次運行程序\n");
}
}
/*加密子函數開始*/
void
dofile(char
*in_fname,char
*pwd,char
*out_file)
{
FILE
*fp1,*fp2;
register
char
ch;
int
j=0;
int
j0=strlen(pwd);
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(j0>=0)
{
ch=fgetc(fp1);
while(!feof(fp1))
{
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*異或後寫入fp2文件*/
ch=fgetc(fp1);
}
j0--;
}
fclose(fp1);/*關閉源文件*/
fclose(fp2);/*關閉目標文件*/
}
void
usage(char
*name)
{
printf("\t=======================File
encryption======================\n");
printf("\tusage:
%s
In-fname
password
out_fname\n",name);
printf("\tExample:
%s
file1.txt
12345678
file2.txt\n",name);
}

C. C語言 文件加密解密

加密:

#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);/*關閉目標文件*/
}

/*程序結束*/

D. 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);
}
}

E. 用C語言做一個加密或者解密的程序

搜狐博客 > 2WDragon > 日誌 > C++/C 2008-07-17 | [轉貼] 採用文件逐位元組與密碼異或方式對文件進行加密 標簽: 異或加密
/*給文件加密的技術很多,其中又分為不同等級,以適合不同場合的需要.這里給出最簡單的文件加密技術,即採用文件逐位元組與密碼異或方式對文件進行加密,當解密時,只需再運行一遍加密程序即可.下面是一個實常式序,能對任意一個文件進行加密,密碼要求用戶輸入,限8位以內(當然你可以再更改).程序有很好的容錯設計,這是我們應該學習的.
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);/*關閉目標文件*/
}/*程序結束*/

F. 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;
}

G. C語言簡單密碼破解(密文轉明文)

調了半天,樓主真是太粗心了!middle1[]應該這樣聲明:
char middle1[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
最後輸出start的時候要注意控制長度,改個for循環就好了!
#include<stdio.h>
#include<string.h>

int main(void)
{
int i,j,length,n;
char temp;
char middle2[27];
char start[201],finish[201];

char middle1[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
gets(middle2);
gets(finish);
scanf("%d",&n);
length=strlen(finish);
for(i=0;i<25;i++)
{
for(j=i+1;j<26;j++)
{
if(middle2[i]>middle2[j])
{
temp=middle2[i];
middle2[i]=middle2[j];
middle2[j]=temp;
temp=middle1[i];
middle1[i]=middle1[j];
middle1[j]=temp;
}
}
}
for(i=1;i<=n;i++)
{
for(j=0;j<length;j++)
{
if(finish[j]==' ')
{
start[j]=' ';
}
else
{
start[j]=middle1[finish[j]-'A'];
}
}
}
for( i = 0;i < length;++i)
printf("%c",start[i]);
printf("\n");

return 0;
}
/*
ABCDEFGHIJKLMNOPQRSTUVWXYZ
*/

H. c語言文件加密和解密

c語言文件加密和解密方法如下:

1、首先打開VC++6.0;

voidDecryptFile(FILE*sfp,FILE*dfp,charpwd)
{
charch;
while((ch=fgetc(sfp))!=EOF)
{
if((ch>='a')&&(ch<='z'))
{
ch=ch^pwd;
ch=(ch-'a'+25)%26+'a';
}
if((ch>='A')&&(ch<='Z'))
{
ch=ch^pwd;
ch=(ch-'A'+25)%26+'A';
}
fputc(ch,dfp);
}
}

輸出函數,輸出文件內容
voidOutputFile(FILE*fp)
{
charch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
}
主函數,主要調用這幾個函數
intmain()
{
/*用戶輸入的要加密的文件名*/
charsfilename[20];
/*用戶輸入加密後保存的文件名*/
chardfilename[20];
/*用來保存密碼字元*/
charpwd;
FILE*sfp,*dfp;

printf(": ");
/*得到要加密的文件名*/
gets(sfilename);
/*得到加密後你要的文件名*/
printf(": ");
gets(dfilename);
/*得到加密字元*/
printf("PleaseinputyourPassword: ");
//scanf("%c",&pwd);
pwd=getch();
/*屏幕以*來表示輸入的加密字元*/
printf("* ");
/*以只讀方式打開要加密的文件*/
if((sfp=fopen(sfilename,"r"))==0)
{
printf("Can'topenthefile:%s ",sfilename);
exit(0);
}
/*輸出要加密的文件*/
printf(": ");
OutputFile(sfp);
/*建立加密後的文件*/
if((dfp=fopen(dfilename,"w+"))==0)
{
printf("Can'topenorcreatethefile:%s ",dfilename);
//exit(0);
}
/*文件加密*/
fseek(sfp,0L,SEEK_SET);
EncryptFile(sfp,dfp,pwd);
printf(" Encryptedthefilesuccessfully! ");
/*輸出加密後的文件*/
printf(": ");
fseek(dfp,0L,SEEK_SET);
OutputFile(dfp);
fclose(sfp);
fclose(dfp);
getch();
return0;
}


I. 異或加密與解密(C語言)

常見的演算法。
#include<stdio.h>
viod main()
{
FILE *in, *out;
char *in_file, *out_file;
char ch;
printf(" input in file name:\n");
gets(in_file);
printf(" input out file name:\n");
gets(out_file);
in = fopen( in_file, "rb"); /*以二進制只讀方式打開*/
out = fopen( out_file, "wb");
if( in == NULL || out == NULL ) exit(1);
ch = fgetc(in);
while( ch != -1 ) /*若文件沒有結束*/
{
ch = ch^1; /*異或運算*/
fputc( ch, out ); /*將異或結果放入輸出文件中*/
ch = fgetc(in);
}
fclose(in);
fclose(out);
}