用于同步百度网盘数据的小软件 纠结了这么久还是开源吧……(捂脸)
- Newtonsoft Json .net
- SQLite
- .net Framework 4.0
- Visual Studio 2015
(黑框框功能完成了一般了,GUI重置还没开始)
- 文件/文件夹操作
- 复制
- 移动
- 创建(仅限文件夹)
- 删除
- 重命名
- 属性查看
- 文件上传/下载
- 上传:多线程可断点(可秒传)
- 下载:多源多线程下载,可断点
- 不过传输列表的保存还没完成
- 文件同步
- 同步到网盘
- 同步到本地
- 文件加密
- 动态AES密钥(由RSA加密后保存到文件中)
- 静态AES密钥(只对数据进行加密,不保存任何密钥)
- 分享创建
- 公开分享
- 私密分享(密码可自定义)
- 黑科技(文件的动态链接)
- 创建文件链接
- 还原文件
目前发现百度云服务器只对单线程限速,好像黑名单也就10kB/线程,所以参考了一下idm的下载方式,从单一url下载改进到多url下载,而且线程上线可以调到200/任务,基本可以实现几MB/s了,所以也够了吧
基于网盘的秒传api实现的:只保留了api调用需要的几个必要参数,而原文件就可以根据这几个参数调用秒传api再次生成 注意:该方式只适用于热门的网盘资源,自己的照片和游戏存档什么的建议还是不要试了,不然可能会丢失数据(当然了无耻的(屁)开发者是不会承担的
目前分成了两个加密方式,一个就是动态的AES密钥:本地保存RSA私钥,将AES的密钥和初始向量都由RSA加密后写入到文件中(放心吧,还是安全的,暴力破解的话连天河二号都会吃瘪),所以同一个文件每次上传所产生的加密数据都是完全不同的; 另一个就是静态的AES密钥:本地直接保存AES的密钥和初始向量,不会将密钥信息透露到任何公共区域,该加密方式对同一个文件都只会生成同样的加密文件,不会发生改变。 (加密文件的同步方式依旧再纠结中)
该功能只适合同步小文件(不大于2g),因为在合成大文件的过程中,百度云返回的md5与文件的实际md5会不匹配
直接开issue吧……因为太多bug了……自己没法找全(捂脸) 代码风格飘逸还真的见谅了
- GNU GPLv3
- copyright © Zhou Xuebin