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]='