Chunker是基于滚动RabinHash实现内容定义组块(CDC)。
CDC算法是一种变长分块算法,它应用数据指纹(如Rabin指纹)将文件分割成长度大小不等的分块策略。与定长分块算法不同,它是基于文件内容进行数据块切分的,因此数据块大小是可变化的。
packagechunker
import"github.com/restic/chunker"
对于以十六进制系数表示法对指定的多项式列表进行过滤,可以使用以下脚本:
# create x over F_2 = GF(2)x := Indeterminate(GF(2), "x");# test if polynomial is irreducible, i.e. the number of factors is oneIrredPoly := function (poly)return (Length(Factors(poly)) = 1);end;;# create a polynomial in x from the hexadecimal representation of the# coefficientsHex2Poly := function (s)return ValuePol(CoefficientsQadic(IntHexString(s), 2), x);end;;# list of candidates, in hexcandidates := [ "3DA3358B4DC173" ];# create real polynomialsL := List(candidates, Hex2Poly);# filter and display the list of irreducible polynomials contained in LDisplay(Filtered(L, x -> (IrredPoly(x))));
评论