导航:首页 > 文档加密 > c语言异或运算加密

c语言异或运算加密

发布时间:2023-07-27 20:34:42

① C语言怎样给文件加密

fopen2进制方法打开文件,整体位移循环1定位数,然后存储。解密也遵守这个原理便可。

② C语言 文件异或加密

异或加密是所有加密中最容易实施且代码量相对精简的一种加密方式,其原理为任意数据被同一个值(key)两次异或后,值不变。

这种特性,使得异或加密算法的加解密流程是完全相同的,也就是说加解密可以用同一个函数实现。


一、算法思路。

依次读入文件字符,并用key值对其异或,结果输入到目标文件中。

二、算法描述。

1 打开源文件及目标文件。

2 获取密钥值(key)。

3 读入一个字符。

4 对其进行异或计算。

5 结果写入目标文件。

6 重复3-5直到文件结尾。

7 关闭文件。

三、代码实现。

为使代码简洁易懂,输入文件设定为in.txt, 输出文件设定为out.txt, key值设定为0x5C。

假定所有文件及目录可读写。

#include<stdio.h>
#defineIN"in.txt"
#defineOUT"out.txt"
#defineKEY0x5C
voidscrambler(constchar*in,constchar*out,unsignedcharkey)
{
FILE*i,*o;
intc;

i=fopen(in,"rb");
o=fopen(out,"wb");//打开文件,因为假定可读写,所以对是否成功不做判断
while((c=fgetc(i))!=EOF)//读入字符直到文件结尾
{
c^=key;//执行异或加密或解密
fputc(c,o);//写入文件
}

fclose(i);
fclose(o);
}

intmain()
{
scrambler(IN,OUT,KEY);
return0;
}

但是异或加密也是有缺陷的。最大的缺陷是加密操作是二进制层面的,获取到的加密文件大部分将是不可读的乱码。这也是为什么在打开文件的时候要以二进制方式的原因。

鉴于此,在此不便给出测试样例及输入输出,可自行调试。

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

C语言设计一个简单的加密解密程序如下:
加密程序代码:
#include<stdio.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>=32&&c<=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代码:
#include<stdio.h>
#include<string.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>=32&&c<=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
else
{
printf("验证码错误!请重新输入:\n");
scanf("%s",filename);
}
}

④ 异或加密与解密(C语言)注释

异或运算有一个特性


c = a xor b
那么
a = c xor b

根据这样的特性,你有一个信息a,然后你产生一个密码b,把它和a异或运算之后就变成了c。这就是一种加密,解密的时候,把c重新和b异或运算,就变回了a。

顺带说一下,异或是很弱的加密方法,很容易被破解的。

阅读全文

与c语言异或运算加密相关的资料

热点内容
代理服务器连接失败怎么解决搜狗 浏览:770
燕窝溯源码标签多大 浏览:284
linux解压tar包命令 浏览:879
东方财富app怎么统计区间涨幅 浏览:944
安卓手机怎么限制应用使用数量 浏览:189
司法三大本pdf 浏览:179
程序员掉头发配图 浏览:490
命令与征服本传哪个好 浏览:276
linux系统的基本操作 浏览:995
php能实现p2p 浏览:640
linux和dos命令 浏览:13
javachar初始化 浏览:547
编译原理复习百度 浏览:686
程序员记事本推荐 浏览:467
python淘宝数据统计 浏览:61
当程序员看视频要vip 浏览:293
华为方舟编译平台 浏览:349
java执行cmd命令 浏览:732
加密解密的毕设方向 浏览:633
c语言如何编译交通灯 浏览:799