Repository navigation
Releases: yunfan007/SafeFile
Releases · yunfan007/SafeFile
Release list
SafeFile1.0.0-alpha
SafeFile 发行版说明
版本: v1.0.0
发布日期: 2026-07-31
项目主页: GitHub
简介
SafeFile 是一款轻量级、安全的文件加密工具,同时集成了 ZIP 压缩/解压功能。它使用 AES-256-CBC 加密算法,结合 CRC32 校验 和 时间过期控制,确保您的文件在传输或存储过程中的机密性与完整性。程序提供简洁的图形界面,适合个人或小团队日常使用。
主要功能
🔐 文件加密
- 支持任意类型文件(单个文件)加密,输出
.sf格式密文。 - 加密时需设置 密码 和 有效截止时间,超过该时间将无法解密。
- 采用 AES-256-CBC 加密,密钥通过双重 SHA-256 哈希派生。
- 每个文件使用 随机 IV(初始化向量),增强安全性。
- 加密过程中对每个数据块附加 CRC32 校验值,解密时自动验证完整性。
🔓 文件解密
- 仅支持解密本程序生成的
.sf文件(兼容 v1、v2、v3 版本)。 - 解密前会校验:
- 密码是否正确(通过密钥哈希比对)。
- 文件是否已过期(基于加密时设定的时间)。
- 数据完整性(CRC32 校验)。
- 解密失败时给出明确错误提示(密码错误、过期、校验失败等)。
📦 ZIP 压缩/解压
- 内置 ZIP 压缩功能,可将选定文件夹打包为
.zip文件。 - 支持解压标准 ZIP 压缩包到指定目录。
使用指南
加密文件
- 切换到 “加密文件” 标签页。
- 点击 “选择文件” 选取待加密的文件。
- 点击 “选择输出文件夹” 指定密文输出目录(文件名自动添加
.sf后缀)。 - 输入密码(最多 25 位),并勾选“显示密码”可查看明文。
- 设置 许可时间(即该文件可被解密的最后期限)。
- 点击 “加密” 开始处理,进度条会显示运行状态。
- 加密完成后,会在输出目录生成
.sf文件。
解密文件
- 切换到 “解密文件” 标签页。
- 点击 “选择文件” 选取
.sf密文文件。 - 点击 “选择输出文件夹” 指定解密后文件的存放位置。
- 输入加密时使用的密码。
- 点击 “解密”,程序将自动验证密码、有效期和完整性。
- 解密成功则恢复原始文件;失败会提示具体原因。
压缩/解压 ZIP
- 压缩:在 “打包文件” 标签页中,点击“选择文件夹”选取要压缩的目录,再选择输出文件夹,点击“压缩”即可生成
SafeFile_日期_Compress.zip。 - 解压:选择待解压的
.zip文件,指定解压目标文件夹,点击“解压”即可。
安全性说明
- 加密算法:AES-256-CBC(Cipher Block Chaining 模式),填充模式为 PKCS7(v3 版本)或 Zeros(v1/v2 兼容)。
- 密钥派生:用户密码经过两次 SHA-256 哈希,产生 32 字节密钥。
- 随机 IV:每个文件使用独立的 16 字节随机 IV,由
RNGCryptoServiceProvider生成。 - 完整性校验:加密时每 1MB 数据块附带 CRC32 校验值,解密时验证,防止数据篡改或传输错误。
- 时间锁定:加密时写入绝对时间(
DateTime.ToBinary()),解密时对比本地时间(优先从 NTP 服务器ntp.ntsc.ac.cn获取标准时间,失败则回退到系统本地时间)。若当前时间晚于许可时间,拒绝解密。 - 兼容旧版:支持 v1/v2 格式(使用固定 IV
"1234567890123456"和 Zeros 填充),但推荐使用 v3 以获得更高安全性。
系统要求
- 操作系统:Windows 7 / 8 / 10 / 11(.NET Framework 4.8 或 .NET Core 3.1+,取决于编译目标)
- 依赖库:
- SunnyUI(UI 控件库)
- GuerrillaNtp(NTP 时间同步)
- 磁盘空间:约 20 MB(包含运行时)
- 内存:建议 512 MB 以上,加密大文件时需更多内存(缓存 1MB 块)。
安装与运行
方式一:直接运行(已编译)
- 从 Releases 下载最新的
.exe或.zip包。 - 解压后双击
SafeFile.exe启动即可(无需安装)。
方式二:源码编译
- 克隆仓库:
git clone https://github.com/yourusername/SafeFile.git
- 使用 Visual Studio 2019+ 打开解决方案。
- 还原 NuGet 包(
GuerrillaNtp和SunnyUI)。 - 选择
Release配置,生成解决方案。 - 在
bin\Release目录下获得可执行文件。
注意事项
- 密码丢失:密码无法恢复,加密时请妥善保管。
- 时间依赖:解密时依赖系统时间或 NTP 服务器时间,请确保系统时间准确,否则可能导致过期判断错误。
- 文件大小限制:加密时,普通模式(类型0)限制 512 MB,大文件模式(类型1)限制 8 GB(代码中默认使用类型0,可通过修改
ActEncType调整)。 - 备份原文件:加密操作不会删除原始文件,请自行决定是否保留。
- CRC32 校验:若解密时提示校验失败,说明文件已被篡改或传输损坏,请重新获取原始密文。
贡献与许可
- 贡献:欢迎提交 Issue 或 Pull Request。请确保代码风格一致,并附上测试用例。
- 许可证:本项目采用 MIT License,您可以自由使用、修改和分发,但需保留版权声明。
更新日志
v1.0.0 (2026-07-31)
- 初始版本发布
- 实现 AES-256-CBC 加密/解密(v3 格式)
- 支持 CRC32 校验和时间过期控制
- 集成 ZIP 压缩/解压功能
- 使用 SunnyUI 美化界面
- 支持 NTP 时间同步
联系我们
- 作者:[StartWhite]
- 邮箱:[yunfanbai@hotmail.com]
感谢使用 SafeFile! 如有任何建议或问题,欢迎反馈。