C语言图片加密与解密..

图片加密

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
//
// Created by szj on 2021/4/22.
//
int main() {
    printf("C语言 图片加密....\n");
    //图片加密与解密

    //需要加密的地址
    char *flieUrl = "/Users/shizhenjiang/Desktop/图片/C语言Flie测试/android.jpeg";
    //加密后的地址
    char *newFlieUrl = "/Users/shizhenjiang/Desktop/图片/C语言Flie测试/newAndroid.jpeg";

    //密钥 (根据密钥来加密)
    char *password = "12345";

    //TODO 二进制读取旧的文件 写入到新的文件生成一个新的加密的文件
    //参数一:文件路径
    //参数二: "r"读取文件 "w" 写入文件 "rb"作为二进制文件读取  "rw"作为二进制文件写
    FILE *file = fopen(flieUrl, "rb");
    FILE *newFlie = fopen(newFlieUrl, "wb");

    if (!file || !newFlie) {
        printf("打开失败,请检查路径%s", flieUrl);
        exit(0);    //结束程序
    }

    //接收读取的值
    int c;
    //用来设置密钥
    int index = 0;

    //TODO EOF = end of flie 表示结束
    while ((c = fgetc(file)) != EOF) {
        //CC为最终密钥
        int cc = password[index++ % strlen(password)];
        //写入文件的时候,
        fputc(c ^ cc, newFlie);
    }
    printf("文件加密成功!!\n");
    printf("文件加密原路径为:%s\n", flieUrl);
    printf("文件加密新路径为:%s", newFlieUrl);
    //文件关闭
    fclose(file);
    fclose(newFlie);

    return 0;
}
复制代码
  • flieUrl 需要加密的图片地址
  • newFlieUrl 加密生成的图片地址

加密格式为

 char *password = "12345";
复制代码

根据’密钥’来加密;

图片解密

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
//
// Created by szj on 2021/4/22.
//

int main() {
    printf("C语言 图片解密....\n");
    //图片加密与解密

    //需要加密的地址
    char *flieUrl = "/Users/shizhenjiang/Desktop/图片/C语言Flie测试/newAndroid.jpeg";
    //加密后的地址
    char *newFlieUrl = "/Users/shizhenjiang/Desktop/图片/C语言Flie测试/newAndroid2.jpeg";



    //TODO 二进制读取旧的文件 写入到新的文件生成一个新的加密的文件
    //参数一:文件路径
    //参数二: "r"读取文件 "w" 写入文件 "rb"作为二进制文件读取  "rw"作为二进制文件写
    FILE *file = fopen(flieUrl, "rb");
    FILE *newFlie = fopen(newFlieUrl, "wb");

    if (!file || !newFlie) {
        printf("打开失败,请检查路径%s", flieUrl);
        exit(0);    //结束程序
    }
    //密钥 (根据密钥来加密)
    char *password = "12345";

    //接收读取的值
    int c;
    //用来设置密钥
    int index = 0;

    //TODO EOF = end of flie 表示结束
    while ((c = fgetc(file) )!= EOF) {
        //CC为最终密钥
        int cc = password[index++ % strlen(password)];
        //写入文件的时候,
        fputc(c ^ cc, newFlie);
    }
    printf("文件解密成功!!\n");
    printf("文件解密原路径为:%s\n", flieUrl);
    printf("文件解密新路径为:%s", newFlieUrl);
    //文件关闭
    fclose(file);
    fclose(newFlie);

    return 0;
}
复制代码
  • flieUrl 被加密的图片地址(必须是加密的图片才能解密)
  • newFlieUrl 解密后的图片地址

注意:

  • 加密解密使用的密钥一定是相同的!
  • 只有加密后的图片才能解密

原创不易,您的点赞就是对我最大的支持~

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享