二进制文件简单加密

来源:互联网 发布:淘宝店铺怎么下架商品 编辑:程序博客网 时间:2024/05/23 15:53
#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");}
原创粉丝点击