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编写)
这个问题并不难,两个数组很容易实现
main()
{
int i,a[4],b[4];
printf("请输入四个数字: ");
for(i=0;i<4;i++)
scanf("%d",a[i]);
b[0]=(a[3]+6)%8;
b[1]=(a[2]+6)%8;
b[2]=(a[1]+6)%8;
b[3]=(a[0]+6)%8;
printf("原数组是:")
for(i=0;i<4;i++)
printf("%d",a[i])
printf("加密后的数组是:")
for(i=0;i<4;i++)
printf("%d",b[i])
}
⑶ 用c语言写一个加密函数。
printf("please enter the user code:")
scanf("%d",&co);
if(co==2)
printf("plese enter the kassword:");
scanf("%d",&passwd);
if(passwd==)
⑷ C语言的加密函数问题。
char* encode(const char* str)
{
int i, s;
s = 0;
for(i = 0; str[i]; i++) s += str[i] * str[i];
for(i = 0; str[i]; i++) {
if(str[i] >= 'a' && str[i] <= 'z') {
str[i] = (str[i] + s) % 128;
}
}
return str;
}
不能准确地恢复
⑸ c语言电码加密中加密函数有几种实现方法
加密方式无穷,随便举个例子:
void encrypt(char*s)
{
for(;*s!='\0';s++)
if(*s=='z')
*s='a';
else *s=*s+1;
}
⑹ C语言 加密算法
#include<stdio.h>
#include<string.h>
#defineMAX_LEN1024
#defineMAX_KEY_LEN10
/*key必须是1-9之间的数字*/
/*拥有K个字符的Key,包含且仅包含1-K*/
intCheckKey(char*key)
{
inti,check[MAX_KEY_LEN]={0};
intmax=strlen(key);
intkeyVal;
for(i=0;i<max;i++)
{
keyVal=key[i]-'0';
if(keyVal>max||keyVal<1)
return0;
if(check[keyVal]==1)
return0;
else
check[keyVal]=1;
}
return1;
}
intEncrypt(char*word,char*key,char*secretWord)
{
inti,start;
intnLenWord=strlen(word);
intnLenKey=strlen(key);
intindex[MAX_KEY_LEN];
if(nLenWord%nLenKey!=0)
{
printf("明文的位数不是密钥位数的整数倍! ");
return0;
}
for(i=0;i<nLenKey;i++)
{
index[i]=key[i]-'0'-1;
}
/*START关键代码*/
start=0;
while(start<nLenWord)
{
for(i=0;i<nLenKey;i++)
{
secretWord[start+i]=word[start+index[i]];
}
start+=nLenKey;
}
secretWord[nLenWord]='