c语言实现密码加密

Python09

c语言实现密码加密,第1张

unsigned char* encrypt(unsigned char* psw, int enc) {

int sum = 0, i

if (enc) {

for (i = 0 i < 6 i++) {

psw[i] -= 15

sum += psw[i]

}

psw[6] = (unsigned char) sum

psw[7] = 0

    }

else {

for (i = 0 i < 6 i++) {

sum += psw[i]

psw[i] += 15

}

if ((unsigned char)sum != psw[6]) {

printf("Bad password\n")

psw[0] = 0

return psw

}

else {

psw[6] = 0

}

}

for (i = 0 i < 3i++) {

unsigned char t = psw[i]

psw[i] = psw[5-i]

psw[5-i] = t

}

return psw

}

int main()

{

unsigned char psw[128]

scanf("%s", psw)

printf("encode to:%s\n", encrypt(psw, 1))

printf("decode to:%s\n", encrypt(psw, 0))

return 0

}

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

1、首先打开VC++6.0;

2、选择文件,新建;

3、选择C++ source file 新建一个空白文档;

4、声明头文件

#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

}