‘壹’ 如何对编辑的以.c为后缀的文件加密
.c文件就是单纯的文本文件,文本文件你想怎么加密?你加密了C编程软件还能认识它了吗?
对于有一些代码不想让别人看见,简单的做法是把这些代码做成动态链接库.dll文件。不过,dll文件也可以反编译。
当然,对于高手来说,任何加密的东西都是可以破解的。
‘贰’ 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语言文本文件加密
问题在这里注意加密后的溢出问题 char型字符最大能表示的数字是127 unsigned char则是255
所以用加法加密要注意处理溢出问题不能简单的加加减减
‘肆’ C语言 给文件加密
你应该输入
D:\data\data.txt
在C程序中才是用\\代表\
‘伍’ c语言 文本文件加密
哥们,我想说你疯了吧,谁有时间给你写这个程序啊,程序写出来还要验证,不验证又不负责,你自己想想这需要多少的工作量?1小时?2小时?根本搞不定。
个人感觉很少有人愿意花时间给你写这个程序,建议你放弃,如果不会,找朋友或花钱。
‘陆’ C语言怎样给文件加密
fopen2进制方法打开文件,整体位移循环1定位数,然后存储。解密也遵守这个原理便可。
‘柒’ 怎样C做简单的文件加密
这个我不会。
给文件加密,我使用的是超级加密3000.
超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。
‘捌’ c语言中的文件加密
首先打开VC++6.0
选择文件,新建
选择C++ source file 新建一个空白文档
声明头文件
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
首先写个加密函数,算法就是简介里说的
void EncryptFile(FILE *sfp,FILE *dfp,char pwd)
{
char ch;
if(sfp==0||dfp==0)
{
printf("ERROR!\n");
return;
}
while((ch=fgetc(sfp))!=EOF)
{
if((ch>='a')&&(ch<='z'))
{
ch=(ch-'a'+1)%26+'a';
ch=ch^pwd;
}
if((ch>='A')&&(ch<='Z'))
{
ch=(ch-'A'+1)%26+'A';
ch=ch^pwd;
}
fputc(ch,dfp);
}
}
写解密子函数:与加密的过程相反
void DecryptFile(FILE *sfp,FILE *dfp,char pwd)
{
char ch;
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);
}
}
输出函数,输出文件内容
void OutputFile(FILE *fp)
{
char ch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
}
主函数,主要调用这几个函数
int main()
{
/*用户输入的要加密的文件名*/
char sfilename[20];
/*用户输入加密后保存的文件名*/
char dfilename[20];
/*用来保存密码字符*/
char pwd;
FILE *sfp,*dfp;
printf("\nPlease input filename to be encrypted:\n");
/*得到要加密的文件名*/
gets(sfilename);
/*得到加密后你要的文件名*/
printf("input filename to save the encrypted file:\n");
gets(dfilename);
/*得到加密字符*/
printf("Please input your Password:\n");
//scanf("%c",&pwd);
pwd=getch();
/*屏幕以*来表示输入的加密字符*/
printf("*\n");
/*以只读方式打开要加密的文件*/
if((sfp=fopen(sfilename,"r"))==0)
{
printf("Can't open the file :%s\n",sfilename);
exit(0);
}
/*输出要加密的文件*/
printf("\nThe the text of file to be encrypted is:\n");
OutputFile(sfp);
/*建立加密后的文件*/
if((dfp=fopen(dfilename,"w+"))==0)
{
printf("Can't open or create the file :%s\n",dfilename);
//exit(0);
}
/*文件加密*/
fseek(sfp,0L,SEEK_SET);
EncryptFile(sfp,dfp,pwd);
printf("\n\nEncrypted the file successfully!\n");
/*输出加密后的文件*/
printf("\nAfter encrypting the text of file is:\n");
fseek(dfp,0L,SEEK_SET);
OutputFile(dfp);
fclose(sfp);
fclose(dfp);
getch();
return 0;
}
‘玖’ 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语言文件加密
/************************************************************************/
/* 版权所有:信息工程学院 王明 使用时请注明出处!! */
/* 算法:凯撒密码体制 */
/************************************************************************/
#include <stdio.h>
#define N 5
void jiami(char namea[256])
{
FILE *fp_jiami,*fp_file2;
char c;
fp_jiami=fopen(namea,"rb");
fp_file2=fopen("file2.txt","wb");
while(EOF!=(fscanf(fp_jiami,"%c",&c)))
{
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
{
c=c+N;
if (!((c>='A'&&c<='Z')||(c>='a'&&c<='z')))c=c-26;
if(c>='a'&&c<='z')c=c-32;
}
fprintf(fp_file2,"%c",c);
}
fclose(fp_file2);
fclose(fp_jiami);
}
void jiemi(char en_name[256])
{
FILE *fp_jiemi,*fp_file3;
char c;
fp_jiemi=fopen(en_name,"rb");
fp_file3=fopen("file3.txt","wb");
while(EOF!=(fscanf(fp_jiemi,"%c",&c)))
{
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
{
c=c-N;
if (!((c>='A'&&c<='Z')||(c>='a'&&c<='z')))c=c+26;
if(c>='A'&&c<='Z')c=c+32;
}
fprintf(fp_file3,"%c",c);
}
fclose(fp_file3);
fclose(fp_jiemi);
}
int main()
{
char name[256];
int n;
printf("输入你要操作的TXT文本:");
gets(name);
printf("\n请选择需要进行的操作:\n");
printf(" 1:加密 2:解密 \n");
printf("输入你的选择:");
scanf("%d",&n);
switch(n) {
case 1:{jiami(name);printf("\t加密成功!!\n\n");
break;}
case 2:{jiemi(name);printf("\t解密成功!!\n\n");
break;}
default:{printf("输入操作不存在!");}
}
return 0;
}