c語言加密解密
㈠ c語言/加密解密
給你一個加密演算法 我寫的 用異或演算法處理文本類的文檔
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
jiemi()
{
int k,l;
char FN[40],FS[40];
char ch,mima[40],x;
FILE *f1,*f2;
printf("輸入要解密的文件夾名稱:");
scanf("%s",FN);
if((f1=fopen(FN,"r"))==NULL)
{
printf("您的路徑有誤,系統將不能完成任務,請重新進入。");
getch();
exit(1);
}
printf("輸入您要解密到的文件夾名稱:");
scanf("%s",FS);
if((f2=fopen(FS,"w"))==NULL)
{
printf("您的輸入有誤,系統將不能完成任務,請重新進入。");
getch();
exit(1);
}
printf("輸入密碼:");
scanf("%s",mima);
l=strlen(mima);
k=0;
ch=fgetc(f1);
while(ch!=EOF)
{
k=k%l;
fputc(ch^mima[k],f2);
ch=fgetc(f1);
k++;
}
fclose(f1);
fclose(f2);
printf("解密成功,請在該軟體目錄找到您解密的文件。\n");
getch();
}
jiami()
{
int k,l;
char FN[20],FS[20];
char ch,mima[40],x;
FILE *f1,*f2;
printf("輸入要打開的文件夾名稱:");
scanf("%s",FN);
if((f1=fopen(FN,"r"))==NULL)
{
printf("您的路徑有誤,系統將不能完成任務,請重新進入。");
getch();
exit(1);
}
printf("輸入要保存的文件夾名稱:");
scanf("%s",FS);
if((f2=fopen(FS,"w"))==NULL)
{
printf("您的輸入有誤,系統將不能完成任務,請重新進入。");
getch();
exit(1);
}
printf("輸入密碼:");
scanf("%s",mima);
l=strlen(mima);
k=0;
ch=fgetc(f1);
while(ch!=EOF) //文件沒有到底就繼續 ,EOF文件的底部
{
k=k%l;
fputc(ch^mima[k],f2);
ch=fgetc(f1);
k++;
}
fclose(f1);
fclose(f2);
printf("加密成功,請在該軟體目錄找到您加密的文件。\n");
getch();
}
main()
{
char y;
while(1)
{
printf("說明:歡迎使用文件加密程序,該程序可以將txt文檔加密為為不可讀文件,解密後返回原狀態\n\n");
printf("小提示:輸入文件名字的時候請使用字母,數字或下劃線。\n並且請加上(文件名).txt的後綴,要加密的文件請放在和程序文件同目錄下\n\n");
printf(" ******菜單*******\n");
printf(" * 1.加密 *\n");
printf(" * 2.解密 *\n");
printf(" * 0.退出 *\n");
printf(" *****************\n");
printf(" 請輸入要執行的命令:\n");
y=getch();
switch(y)
{
case '1': jiami();system("cls");break;
case '2': jiemi();system("cls");break;
case '0': exit(0);
}
}
}
㈡ C語言加密解密程式
加密方式呢?
㈢ 數據加密解密C語言
用什麼演算法的,
㈣ 跪求c語言加密解密思路,,!!
你的92是怎麼得到523的?
/*解密的過程就是加密的逆過程,你加密的過程是:
1. 每位數都加7並對10進行取余
2. 第一位和第三位進行調換
那麼解密的過程就可以是這樣:
1. 第一位和第三位進行調換(現在就重新回到了原來的位置)
2. 每位數都減7並對10進行取余
可是,這里有一個問題:如果這位上的數小於7怎麼辦。解決方案是先加10再減7,最後的結果就是加3然後對10取余
*/
#include <stdio.h>
int jiemi(int m)
{
int i, j, a, s;
s = 0;
while(m)
{
a = m%10; //取出最後一位
s = s*10 + (a+3)%10;
m /= 10;
}
return s;
}
int main()
{
int n;
while(scanf("%d", &n)==1)
{
printf("%d 解密後: %d ", n, jiemi(n));
}
return 0;
}
㈤ c語言的加密與解密問題
少了utchar函數,頭文件也沒有#include<stdio.h>。
其他的暫時都對。
㈥ 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);
}
㈦ 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;
}
㈧ C語言設計一個簡單的加密解密程序
C語言設計一個簡單的加密解密程序如下:
加密程序代碼:
#include
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
#include
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);
}
}