简单字符加密转换c语言(密码转换c语言)

2023-02-05 23:50:50 摩斯密码知识 思思

”简单字符加密变换 A->F“c语言问题

c语言本身是不能加密字符的,但你可以写一个加密程序来加密。

为叙述方便,不妨设这个程序为jm。

给定一个字符串s,加密后的串为jm(s),我们称之为密文,原串为明文。

只要有这么一个jm程序,就可以实现加密字符。

相对应的还有解密。

p.s.常用的加密方法有循环字符串法、密钥加密法

简单字符加密转换c语言(密码转换c语言) 第1张

一个简单的C语言:密码转换

char mycrypt ( char ch, int key )

{

if ( ch = 'Z' ch = 'A' )

{

ch -= 'A';

ch += 26 + key;

ch = ch % 26;

ch += 'A';

}

else if ( ch = 'z' ch = 'a' )

{

ch -= 'a';

ch += 26 + key;

ch = ch % 26;

ch += 'a';

}

return ch;

}

C语言字符串加密

问题不小,你表面用的是C

但是,好多地方不符合C的语法

,,比如:

for

(int

i=0;

str[i]

!=

'\0';

i++)

还有,就是你好像没有弄清楚

,你要做什么似的,有好多无用的东西,

就像你的函数里的,key

,虽然你提到key了,但是你根本没有使用key,你只是使用45来进行加密,,还有就是一个文件

的大小,是不确定的,你用一个100个字符的字符串来存,有点那个不安全了,,如果稍长一点就会出问题,产生运行时错误。其实你这个加密和解密是一个可逆过程,用一个函数,就可以了,具体你想要的也不是太明白,就给你弄了一个简单一点加密和解密程序

,输入输出不是同一个文件

,不知道是不是你想要的。

#include

#include

#include

void

Decrypt()

{

char

fname[FILENAME_MAX];

char

fname2[FILENAME_MAX];

FILE*

fp;

FILE*

fp1;

int

key;

char

c;

printf("输入要加/解密文件的路径:\n");

scanf("%s",

fname);

printf("请输入密钥:\n");

scanf("%d",key);

strcpy(fname2,fname);

strcat(fname2,".txt");

if(

(fp

=

fopen(fname,"r+"))

==

NULL)

{

printf("error");

exit(1);

}

if(

(fp1

=

fopen(fname2,"w+"))

==

NULL)

{

printf("error");

exit(1);

}

while(

(c

=

fgetc(fp))

!=

EOF)

{

c

=

c^key;

fputc(c,fp1);

}

fcloseall();

}

int

main()

{

Decrypt();

return

0;

}

如果想看一些好一点的加密算法

,我这里有一些,联系我发给你

,,

C语言设计一个简单的加密解密程序

C语言设计一个简单的加密解密程序如下:

加密程序代码:

#includestdio.h

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=32c=126)

{

c=c-32;

c=126-c;

}

if(c!=-1)

fprintf(fp2,"%c",c);

}

while(c!=-1);

}

解密程序代码:

#includestdio.h

#includestring.h

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=32c=126)

{

c=126-c;

c=32+c;

}

if(c!=-1)

fprintf(fp2,"%c",c);

}

while(c!=-1);

}

else

{

printf("验证码错误!请重新输入:\n");

scanf("%s",filename);

}

}