Thanks to visit codestin.com
Credit goes to github.com

Skip to content

SM3File 是一个使用中国国密算法 SM3 哈希函数和 SM4 分组密码(CBC 模式)进行文件加密和解密的安全工具。

Notifications You must be signed in to change notification settings

ctkqiang/sm3file

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SM3File 文件加密工具

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/ 中)

构建步骤

  1. 首先构建 GmSSL:
cd external/GmSSL
cmake .
make
cd ../..
  1. 然后构建项目:
make clean
make

编译后的可执行文件将位于 bin/sm3file

使用方法

程序支持两种主要操作:

  1. 加密文件:
./bin/sm3file -e 输入文件 输出文件
  1. 解密文件:
./bin/sm3file -d 加密文件 输出文件

在加密或解密时,程序会提示输入密码。这个密码将通过 PBKDF2-HMAC-SM3 算法派生出加密密钥。

安全特性

  • 使用 SM4 分组密码的 CBC 模式进行加密/解密
  • 使用 PBKDF2-HMAC-SM3 进行基于密码的密钥派生
  • 使用安全的随机数生成器进行加密操作
  • 使用后安全擦除敏感数据

从源码构建

环境要求

  • C 编译器(GCC 或 Clang)
  • CMake(用于构建 GmSSL)
  • Make

编译步骤

  1. 克隆仓库:
git clone --recursive https://github.com/ctkqiang/sm3file.git
cd sm3file
  1. 按照上述构建步骤进行编译。

贡献

欢迎提交贡献!请随时提交 Pull Request。

🌟 开源项目赞助计划

用捐赠助力发展

感谢您使用本项目!您的支持是开源持续发展的核心动力。
每一份捐赠都将直接用于:
✅ 服务器与基础设施维护(魔法城堡的维修费哟~)
✅ 新功能开发与版本迭代(魔法技能树要升级哒~)
✅ 文档优化与社区建设(魔法图书馆要扩建呀~)

点滴支持皆能汇聚成海,让我们共同打造更强大的开源工具!
(小仙子们在向你比心哟~)


🌐 全球捐赠通道

国内用户


🔵 支付宝(小企鹅在收金币哟~)

🟢 微信支付(小绿龙在收金币哟~)

国际用户


📌 开发者社交图谱

技术交流

社交互动


🙌 感谢您成为开源社区的重要一员!
💬 捐赠后欢迎通过社交平台与我联系,您的名字将出现在项目致谢列表!

About

SM3File 是一个使用中国国密算法 SM3 哈希函数和 SM4 分组密码(CBC 模式)进行文件加密和解密的安全工具。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published