CRC32c

用于计算 CRC-32c 校验和的标准库模块。

CRC32c.crc32c函数
crc32c(data, crc::UInt32=0x00000000)

计算给定 data 的 CRC-32c 校验和,data 可以是 Array{UInt8}、其连续子数组或 String。可选地,可以传递一个起始 crc 整数与校验和混合。crc 参数可用于计算分块数据的校验和:执行 crc32c(data2, crc32c(data1)) 等效于 [data1; data2] 的校验和。(从技术上讲,计算的是小端校验和。)

还有一种方法 crc32c(io, nb, crc) 用于从流 io 中校验和 nb 字节,或 crc32c(io, crc) 用于校验和所有剩余字节。因此,您可以执行 open(crc32c, filename) 来校验和整个文件,或 crc32c(seekstart(buf)) 来校验和 IOBuffer 而不调用 take!.

对于 String,请注意,结果是特定于 UTF-8 编码的(不同的 Unicode 编码将获得不同的校验和)。要校验和其他位类型的 a::Array,可以执行 crc32c(reinterpret(UInt8,a)),但请注意,结果可能与字节序相关。

CRC32c.crc32c方法
crc32c(io::IO, [nb::Integer,] crc::UInt32=0x00000000)

io 中读取最多 nb 字节,并返回 CRC-32c 校验和,可以选择与起始 crc 整数混合。如果未提供 nb,则将读取 io,直到流结束。