喷泉码可以理解为通过构造数据冗余来避免数据丢失,也就是说将数据分成很多段,部分片段
里面的信息量就能对原始数据的信息量进行很好的表达,接收方接收到部门数据片段后就能还原出完整的数据。
这种编码的发送端可以由k个原始分组生成任意数量的编码分组,接收端只要收到其中
任意(1+ε)k个编码分组,即可通过译码以高概率成功恢复全部原始分组,精心设计的数字喷泉码不
仅拥有很小的译码开销ε,而且具有简单的编译码方法和很小的编译码复杂度。
比如你遮住二维码的四分之一,用手机的相机也照样能识别。你遮住的四分之一就相当于丢失的数据包。
喷泉码的具体实现算法中,会将原始数据分为不同的小块(和分组密码的应用不谋而合),
与生成的seed(可以是随机)对数据块进行预处理(异或操作),生成需要发送的数据包。
对于发送的数据包,可以使用ECB模式的分组密码进行加密。
实现原理:很复杂,不是搞学术/写论文的人就不用看了,我放弃了
喷泉码python版本使用方式: https://blog.csdn.net/u012136352/article/details/78234912