您的位置:首页 > 编程语言 > C语言/C++

二进制文件简单加密

2017-06-22 19:19 162 查看
#define  _CRT_SECURE_NO_WARNINGS       //关闭安全监察
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *path = "C:\\1.jpg";           //创建指针指向路径
char *pathjia = "C:\\1jia.jpg";     //加密后文件
char *pathjie = "C:\\1jie.jpg";     //解密后文件

int getbinsize(char *path)          //获取文件大小
{
FILE *pfr = fopen(path, "rb");  //文件指针  打开文件
if(pfr == NULL )            //判断是否打开成功
{
return -1;
}
else
{
int ch;               //ch设置为int型
int length = 0;
while(ch = fgetc(pfr)!=EOF)       //遍历整个文件
{
length++;
}
return length;         //返回大小
}

}

void binwithpassword(char *path, char *newpath, char *password)            // 密码方式加密函数
{
int newch;
FILE *pfr = fopen(path, "rb");      //以二进制可读方式打开文件
FILE *pfw = fopen(newpath, "wb");  //可写方式打开
if (pfr == NULL || pfw == NULL)
{
return ;
}
else
{

int i = 0;
int passlength = strlen(password);  // 密码长度
int ch;
while(ch = fgetc(pfr)!=EOF)   //遍历文件
{
newch = ch ^ password[i];     //异或加密方法                //ch ^ password[i%passlength];
i++;                                          //  i++;  一直循环下去
}
if(i == passlength)
{
i = 0;
}
fputc(newch, pfw);   //输出加密后的
}

fclose(pfr);
fclose(pfw);      //打开一个文件 就对应关闭

}

void main()
{
binwithpassword(path, pathjia, "huichenyang");
binwithpassword(pathjia, pathjie, "huichenyang");

system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息