SM3File 是一个使用中国国密算法 SM3 哈希函数和 SM4 分组密码(CBC 模式)进行文件加密和解密的安全工具。
- 使用 SM4-CBC 模式进行文件加密
- 使用 SM4-CBC 模式进行文件解密
- 使用 PBKDF2-HMAC-SM3 进行密码派生
- 安全的随机数生成用于加密操作
├── include/
│ ├── crypto.h # 密码学操作接口
│ ├── file_decryption.h # 文件解密接口
│ └── file_encryption.h # 文件加密接口
├── src/
│ ├── crypto.c # 密码学操作实现
│ ├── file_decryption.c # 文件解密实现
│ └── file_encryption.c # 文件加密实现
└── sm3file.c # 主程序入口
- GmSSL(作为子模块包含在
external/GmSSL/
中)
- 首先构建 GmSSL:
cd external/GmSSL
cmake .
make
cd ../..
- 然后构建项目:
make clean
make
编译后的可执行文件将位于 bin/sm3file
。
程序支持两种主要操作:
- 加密文件:
./bin/sm3file -e 输入文件 输出文件
- 解密文件:
./bin/sm3file -d 加密文件 输出文件
在加密或解密时,程序会提示输入密码。这个密码将通过 PBKDF2-HMAC-SM3 算法派生出加密密钥。
- 使用 SM4 分组密码的 CBC 模式进行加密/解密
- 使用 PBKDF2-HMAC-SM3 进行基于密码的密钥派生
- 使用安全的随机数生成器进行加密操作
- 使用后安全擦除敏感数据
- C 编译器(GCC 或 Clang)
- CMake(用于构建 GmSSL)
- Make
- 克隆仓库:
git clone --recursive https://github.com/ctkqiang/sm3file.git
cd sm3file
- 按照上述构建步骤进行编译。
欢迎提交贡献!请随时提交 Pull Request。
感谢您使用本项目!您的支持是开源持续发展的核心动力。
每一份捐赠都将直接用于:
✅ 服务器与基础设施维护(魔法城堡的维修费哟~)
✅ 新功能开发与版本迭代(魔法技能树要升级哒~)
✅ 文档优化与社区建设(魔法图书馆要扩建呀~)
点滴支持皆能汇聚成海,让我们共同打造更强大的开源工具!
(小仙子们在向你比心哟~)
🙌 感谢您成为开源社区的重要一员!
💬 捐赠后欢迎通过社交平台与我联系,您的名字将出现在项目致谢列表!