C:对文件进行加解密 ;

文章目录[x]
  1. 1:文件加密
  2. 2:文件解密

假如app需要将图片放到第三方服务器,为了防止图片泄密,可以对图片进行加密;

加密思路:把每个字节拿出来,对每个字节都处理。或者把某部分拿出来进行处理。

文件加密

可以通过fgetc方法和fputc方法将文件的单个字节取出修改放入新文件中:

#include<stdio.h>
#include<stdlib.h>

int main(int argc, char const *argv[])
{
char* target_name = "/Users/heyi/Desktop/cpp/clz/android_cpp/timg.jpeg";
char* en_name = "/Users/heyi/Desktop/cpp/clz/android_cpp/timg_en.jpeg";

FILE* target = fopen(target_name,"rb");
FILE* en = fopen(en_name,"wb");
if (target&&en)
{
int c;
//EOF :end of file ;
while ((c=fgetc(target))!=EOF)
{
fputc(c^5,en);
}

fclose(target);
fclose(en);
}else
{
printf("文件打开失败。\n");
}

return 0;
}

文件解密

 

在上面的代码中,对文件的每个字节进行了异或5的运算,在解密时只需要再次对文件的每个字节进行异或5的操作就行了:

#include<stdio.h>
#include<stdlib.h>

int main(int argc, char const *argv[])
{
char* target_name = "/Users/heyi/Desktop/cpp/clz/android_cpp/timg_en.jpeg";
char* en_name = "/Users/heyi/Desktop/cpp/clz/android_cpp/timg_target.jpeg";

FILE* target = fopen(target_name,"rb");
FILE* en = fopen(en_name,"wb");
if (target&&en)
{
int c;
//EOF :end of file ;
while ((c=fgetc(target))!=EOF)
{
fputc(c^5,en);
}

fclose(target);
fclose(en);
}else
{
printf("文件打开失败。\n");
}

return 0;
}

为了性能着想,也可以使用Mat矩阵改动部分字节来进行加密。

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00