c语言简单加密程序(c语言简单加密程序代码)

2023-03-01 14:16:42 摩斯密码知识 思思

如何用C语言对文件进行加密和解密?

对于加密要求不高的完全可以自己定义规则来进行加密。这种加密是很简单很自由的,例如你在存文件的时候可以将文件中的每个字符都加上一个数,然后读取该文件的时候再每个字符相应地减去那个数,即可实现就简单的加密,这样你储存的文件看上去就是乱码了。只是这个规则太简单,规则你可以自己定,加密与解密对着来就行了。

下面程序用异或操作对文件进行加密和解密

/******************设计思路******************/

//根据用户输入的加密/机密密码,

//每次都拿原文件和密码等长度的一个字符串和密码

//对应元素异或进行加密/解密

//另外因为是用异或方法,所以加密和解密就是同一个程序

//即按照同样的加密即是对文件的解密

#include

#include

#include

#include

#include

charfilename[256];//原文件

charpassword[256];//加密/解密密码

constcharfilenametemp[]="temp15435255435325432543.temp";//加密/解密中间文件

voidinputpass(char*pass);//密码输入以"******"显示

voidmain(){

FILE*fp;//加密/解密的文件

FILE*fptemp;//加密/解密过程临时文件

intpwdlen;//密码长度

inti=0;//计数器

charch=0;//读入的字符

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

gets(filename);

if((fp=fopen(filename,"rb"))==NULL){

printf("找不到文件%s\n",filename);

exit(1);

}//if

printf("请输入要加密/解密的密码:\n");

inputpass(password);

pwdlen=strlen(password);

if(pwdlen==0){

printf("密码不能为空,加密/解密失败\n");

exit(1);

}//if

fptemp=fopen(filenametemp,"wb");//打开中间文件

while(1){

ch=fgetc(fp);//从原文件读入一个字符

if(feof(fp)){//已经读到文件尾

break;//退出循环

}

ch^=password[i++];//对原字符和密码进行异或操作

fputc(ch,fptemp);//将异或结果写入中间文件

if(i==pwdlen){//使得原文件每和密码长度相同的固定长度异或加密

i=0;

}

}//while

fclose(fp);//关闭打开原文件

fclose(fptemp);//关闭打开中间文件

remove(filename);//删除原文件

rename(filenametemp,filename);//将中间文件重命名为原文件

printf("加密/解密成功\n");//至此加密/解密成功

}

//密码输入以"******"显示

voidinputpass(char*pass){

inti=0;

charc;

while(isprint(c=getch())){

pass[i++]=c;

//printf("*");

}

pass[i]='\0';

printf("\n");

}

c语言简单加密程序(c语言简单加密程序代码) 第1张

简单的C语言加密程序?

#include

#include

main()

{

intkey;

charch;

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

scanf("%d",key);

printf("得到对应明文如下:");

while((ch=getchar())!='\r')

(ch+key)122?putchar(ch-122+33+key):

((ch+key)33?putchar(ch+122+key):putchar(ch+key));

}

输入输出如下:

请输入密钥:20addse

得到对应明文如下:uxx.y

你先输入一个任意的整数,如20,然后在键盘上输入一段任意的字符如addse

按回车键结束,就会得到结果如:uxx.y

下面是另一组输入输出:

请输入密钥:35asjRYIRER!@#$^^*

得到对应明文如下:+=4u#luhuDcFG((MI-

具体是如何加密,你应该能看懂,就是用一个三目运算符?:控制。

C语言程序设计 简单加密程序

你的改动不可以,之所以你的调试结果对,那是因为你没有用边界值去测试。

这个加密方法是用的循环码,也就是用字母推后两个位置,即用C代替A,用D代替B,那么Z用什么来代替呢?那就是B。除以26的目的就是当超过26后,通过求余数的方式折回头部去。

(soustr[j]-'A'+2)的意思就是将26个字母编号为1~26。