文件分割还原
你的问题就是著名的 secret sharing 啊……假如你的文件是
维空间中的点的座标,那么
个不平行的「平面」就可以计算出它的位置来:
因此,作为座标的拥有者,你可以画
个平面,它们都经过这个秘密点,然后将它们分开存放就可以了。这些面中只要获取到
个就能重现秘密座标,但少一个都不行,因此可以保证绝对安全(信息论安全);而且因为只需要获取到
个面,所以也增强了健壮性。
■网友
文件X份,每份M字节,丢掉Y份
假设文件是不可压缩的,举个极端的例子。如果Y是0,那么你直接切开文件就好了。
假设X=100,Y=99,那你的文件的内容就要有99份冗余,用来被丢掉。
假设X=5, Y=1,那文件的内容大概就是
12,34,51,23,45
随便干掉哪个你都能恢复完整的12345。
【文件分割还原】 假设X=5,Y=2,那文件内容大概就是
123,451,234,512,345
随便干掉哪2个你都能恢复完整的12345。
如果是
12,34,51,23,45
那么你要祈祷最好不要干掉刚好包含两个一样数字的文件。没了12,34可以,没了12,51就不行了。所以随便拿掉两个会导致无法恢复的概率是50%。
但是这样看起来还是很浪费,所以其实在真正的系统里面,有很小的概率,就算你只死掉了一万台里面的5台,因为你只有4个replication,刚好那个文件就丢了,但是仍然有相当大的概率所有文件都在。
以此类推,如果要保证【无论选哪Y个,都不能丢掉任何数据】,那你的文件只能复制Y+1份错开存了,就跟上面的粒子一样,跟X和M其实没有关系。
■网友
看Erasure code
推荐阅读
- 白皮书一般是政府发布的正式报告或文件,那么现在物联网、智慧城市等热门领域这么多企业发布的白皮书算咋回事呢
- hadoop中的mapreduce链接(mapreduce chaining)怎样避免中间文件的产生
- 怎样防止U盘内的文件被复制
- 可不可能利用网盘的秒传功能使用伪造的MD5(或其他信息)值进行文件分享
- windows资源管理器无法浏览部分安卓手机内文件
- 单例模式static函数必须在头文件中实现么
- 为啥我无法保存一个网页的完整html文件
- windows 7怎样使文件系统区分大小写
- Windows中文件名最大字符数
- 类似通过局域网映射驱动器共享文件是否可以通过互联网跨局域网实时共享