Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

图片加密解密 Image-Encryption-and-Decryption

项目简介

  • 本地图片文件二进制加密解密,支持png/jpg等全部图片格式
  • 纯本地处理,无网络上传,数据不会外泄
  • 密钥使用整数数字,加解密密钥必须完全一致
  • Windows控制台彩色文字提示,路径自动兼容正反斜杠
  • 处理结束自动统计已处理字节数量

加密原理

1、单字节XOR对称加密

以二进制模式完整读取图片每一字节,将字节数据与输入整数密钥逐字节异或。异或具备自逆特性,使用同一个整数密钥再次对密文文件逐字节异或,即可恢复原始图片。 文件完整二进制全部参与运算,不存在明文残留;加密和解密共用一套处理逻辑。

2、文件二进制读写处理

图片本身是连续二进制流,无需额外转码,直接对源文件字节修改后写入新文件。全程二进制读写,不会破坏图片原始存储结构,仅改变像素数据导致图片无法正常预览。

完整流程:

加密:原图二进制字节 → 逐字节异或整数密钥 → 生成加密图片文件 解密:加密图片二进制字节 → 同一密钥逐字节异或 → 恢复原始图片

使用示例

=====================================
          图片加密解密工具 V2.0       
=====================================
            1. 图片加密               
            2. 图片解密               
            0. 退出程序               
=====================================
请选择操作(输入数字0-2):1

===== 图片加密 =====
提示:路径支持复制粘贴,示例:C:\1.png
请输入待加密图片路径:D:\test.png
请输入加密后保存路径:D:\enc.png
请输入加密密钥(任意整数,如123,务必记住!):Allenlhj
[提示] 正在加密图片...(请勿关闭程序)
[成功] 处理完成!共处理 163840 字节

按任意键返回主菜单...
=====================================
          图片加密解密工具 V2.0       
=====================================
            1. 图片加密               
            2. 图片解密               
            0. 退出程序               
=====================================
请选择操作(输入数字0-2):2

===== 图片解密 =====
提示:解密密钥必须和加密时一致,否则图片会损坏!
请输入待解密图片路径:C:\enc.png
请输入解密后保存路径:C:\dec.png
请输入解密密钥(和加密时相同):Allenlhj
[提示] 正在解密图片...(请勿关闭程序)
[成功] 处理完成!共处理 163840 字节

按任意键返回主菜单...
=====================================
          图片加密解密工具 V2.0       
=====================================
            1. 图片加密               
            2. 图片解密               
            0. 退出程序               
=====================================
请选择操作(输入数字0-2):0

[提示] 程序已退出,感谢使用!

编译参数

编译时加入以下参数:

-lurlmon

在链接时加入以下参数:

-static-libstdc++ -static-libgcc

有问题欢迎大家提交PR或者Issue!