本文给出一种弄死百度网盘的可行性办法
网盘秒传机制
很多网盘都有秒传功能,原理是对比本地文件和服务器上的 md5(或 sha1 之类的)值,假如发现 md5 相同,则直接在你的网盘空间里创建一个链接,用于指向服务器已存在的该文件,从而达到节省服务器空间成本和上传成本的目的。
本质上网盘只是给了你一个用于指向真实文件的链接,并且扣除你的网盘空间,让人感觉你的文件已经上传。
实际应用
- 可以通过上传一个文件是否秒传,知道你的文件是否在服务端有重复的。
- 上传一个你创建的私人文件(假设 100MB),由于是你创建的,因此这个世界上不可能有第二个一样的文件,所以上传的时候必定不是秒传,等传到网盘后,删除它,并且从网盘回收站里删除。再次上传,如果是秒传,则证明服务器保存了你的私人文件,如果没有秒传,则表示当最后一个文件链接被删除时,真实的文件也会被删除。
- 实测百度网盘会在最后一个文件链接删除时删除真实文件。
创建临时文件
既然百度限制下载速度,但是不限制上传速度,那么我们何不上传一些无意义的辣鸡文件来填满百度网盘,从而让百度网盘的服务器充斥着辣鸡文件呢?昂贵的硬盘维护费用?与我何干?
步骤如下:
- 创建无意义的临时文件。
- 上传至百度网盘,如果秒传,则放弃上传,如果不是秒传,则上传,并让那个文件永远留着。
- 召唤千万网友一起传文件。
windows 上有 fsutil 命令可以快速创建无意义的临时文件:
fsutil file createnew d:a.txt 1024
这样就会创建大小为 1KB 的临时文件 D:/a.txt
,打开后会发现是无意义的字符,而且每次生成的内容都是一样的,意味着,同一条命令得到的文件是一样的。
计算过程
由于百度有 4G 上传限制,而我们的临时文件如果要 md5 不同,就需要大小不同,因此 md5 不同的一批文件能够占用的空间为:
计算可得为:9223372039002260000 字节,约等于 800 万 TB,假设每人网盘空间贡献 1TB,则需要 800 万勇士的参与(DNF 玩家?)。
按照阿里云的对象存储 OSS 来算:
由于百度网盘的文件不可能都是归档型(即几乎不使用),也考虑到百度要节约成本,就取中间数,则可知道这批无意义的临时文件需要让百度网盘承担:
即 6 亿/月!
呵呵~百度网盘你敢说不凉?
fsutil file createnew d:a.txt 1024000002
开一年百度云会员,真香。你这样做你猜会不会被抓。本质上算得是破坏计算机罪了吧
其实我已经不用百度网盘了