Evan You 39887866ff 1.13.3
2025-04-04 15:04:22 +08:00
2025-04-04 15:04:22 +08:00
2025-04-04 15:04:22 +08:00
2024-08-31 09:12:30 +08:00
2024-08-31 09:12:30 +08:00
2025-03-11 13:09:31 +08:00
2024-08-31 09:12:30 +08:00
2024-08-31 09:12:30 +08:00
2024-08-31 09:12:30 +08:00
2024-12-01 14:36:49 +08:00
2025-03-19 14:38:17 +08:00
2024-08-31 09:12:30 +08:00


Logo

MixFile

无限空间,不限速,加密储存

MixFile 介绍

MixFile是一款可以上传加密文件并分享的安卓APP
可实现本地加密上传,加密下载文件,在线播放加密视频
加密时会自动生成随机密钥进行加密,上传完成后,密钥 文件地址 文件大小等信息会附加在分享码中
将分享码发送给他人即可实现分享文件
已发布版本: https://github.com/InvertGeek/MixFile/releases
使用帮助: https://invertgeek.github.io/mixfile-doc/help.html

详细原理

将文件切割为1MB的分片,然后加密隐藏到空白图片中
非伪装,图片都是真实有效可被解析,然后上传所有分片,最后聚合分片索引信息
再将信息压缩隐写到一张索引图片中,最后上传索引图片
下载时优先解析索引,再根据索引信息获取到所有分片链接进行逆操作即可还原文件
视频上传后可直接在线播放,已实现range请求,可切换进度条,智能实时解析进度对应的图片信息
基于kotlin协程优化并发,上传下载均可达到数十Mb每秒,和普通文件直链基本无区别

安全性

文件是在本地加密后上传的,不泄漏分享码任何人无法解密
MixFile采用256位的AES-GCM算法进行加密,所有的文件分片,以及包含所有分片地址的索引文件都是加密储存的
256位的密钥即使是量子计算机采用grover算法,也具有经典计算机下128位的安全性,破解时间远超已知宇宙年龄

防篡改

SHA256校验在分享码泄露的情况下,也可确保文件不会被篡改,每个分片都会在下载时进行校验,即使是视频从中间播放也可确保百分百是原文件
单一分享码对应单一文件,同一个分享码即使是上传到自己的储存服务,也没有任何办法进行数据篡改(包括二次利用mixfile原理使用相同的密钥加密不同数据),下载解析或播放时检测到篡改会自动中断数据流
也就是可以保证同一个分享码,不可能下载到不同的文件,只要分享码内容相同,无论以什么手段修改云端的返回的内容都是无法通过校验的
原理: 索引文件结构中会储存所有URL以及其SHA256原内容哈希值,分享码中包含索引文件地址以及其SHA256哈希值,

命令行版本

https://github.com/InvertGeek/mixfilecli

免责声明

  • 不能百分百保证文件永久有效,请自行对重要文件做好本地备份。
  • 请勿使用本项目上传不符合社会主义核心价值观的文件。
  • 该项目仅用于学习和技术交流,开发者不承担任何由使用者的行为带来的法律责任。

Github Star

Stargazers over time

Languages
Kotlin 86.8%
Java 13.2%