Skip to content

BunnySakura/BitCipher

Repository files navigation

BitMap-GUI

全文件格式加密/解密软件。(Full file format encryption / decryption software.)


本次更新内容

  1. 增加了图形化窗口;
  2. 使用C++17新的filesystem优化了遍历文件的步骤;
  3. 优化了代码逻辑;
  4. 改进了文件读写操作,进行10MB的分块读写,大大降低了内存占用,且基本没有了文件大小的限制;

使用方法

加密和解密步骤相同

1. 下载程序压缩包并解压

image

下载 并解压,解压后的文件如上图所示:
上面是图形化操作界面,下面是命令行操作界面,二者互相配合使用,故需放在同一目录下。

2. 双击BitMapGUI.exe,并调整对应参数,点击“开始处理”

image

  • 文件输入:需要进行加密/解密的文件所在的文件夹
  • 文件输出:处理完成的文件的保存路径

3. 进度条开始移动,等待处理完成,进度条停止移动

image


注意

  • 本程序会对子目录的文件进行递归处理,并在目标目录生成相同的目录结构。请确认选择的路径下只有待处理的文件,避免覆盖了其他文件!
  • 文件处理完毕后,输出的文件总大小应该和输入的相等,且文件和文件夹数量均对应,否则就是处理失败,需要 重试
  • 本次优化后,在文件处理完成后基本上不会出现文件处理失败,不输出有效文件的情况。但是程序嘛,就像酒吧永远都有概率发生顾客点了一份炒饭的事,无法避免发生问题。尽管我已经进行了较为周密的测试,但是不排除仍有遗漏。所以对于能够稳定复现的问题,可以提交 issue,万分感谢你的支持。

思路

本程序主体为C++开发,接收命令行参数,调用方法为:

BitMap核心程序.exe <文件输入路径> <文件输出路径> <线程数>

参数不可缺漏,其中:

  • 文件输入路径:图形化界面的文件输入
  • 文件输出路径:图形化界面的文件输出
  • 线程数:即多线程处理文件所使用的线程数量,8核16线程CPU建议使用14线程以下,图形化界面默认给的是物理线程数减2。

图形化界面基于Python的Tkinter库开发,实际上就是给调用程序主体加上了一层封装,本质还是在用户配完参数后,转换为指令执行。

VS2022开发环境部署

  • C++语言标准选C++17,以调用filesystem
  • 调试中命令参数可自行构造
  • SDL检查选否,绕过ThreadPool.hresult_of报错,result_of是C++14的内容,之后弃用,暂未找到替代。

image image image

引用

ThreadPool.h
文件处理方法

About

支持全文件格式的加密/解密软件

Resources

Stars

Watchers

Forks

Packages

No packages published