#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");
}
二进制文件简单加密
最新推荐文章于 2024-09-20 16:12:47 发布