5次发布
0.0.4 | 2023年12月3日 |
---|---|
0.0.3 | 2023年11月16日 |
0.0.2 | 2023年11月16日 |
0.0.1 | 2023年11月16日 |
0.0.0 | 2023年11月16日 |
#1026 在 算法
22 每月下载量
用于 stegano
41KB
630 行
CRC32
从灰烬中复活crc32
库。
使用方法
将 crc32-v2
添加到您的 Cargo.toml
文件
[dependencies]
crc32-v2 = "0.0.4"
或运行
cargo add crc32-v2
示例
use crc32_v2::crc32;
use crc32_v2::byfour::crc32_little;
const CRC32_INIT: u32 = 0; // Initial CRC value, you can customize it
fn main() {
// Your data to calculate CRC for
let data = b"Hello, world!";
// Calculate CRC
let result_crc = crc32(CRC32_INIT, data);
// Print the result
println!("CRC-32: {:x}", result_crc);
// Calculate CRC using the little-endian method
let result_crc_little = crc32_little(CRC32_INIT, data);
// Print the result
println!("CRC-32 (Little Endian): {:x}", result_crc_little);
}
// Output
// CRC-32: ebe6c6e6
// CRC-32 (Little Endian): a29eb9bf
lib.rs
:
CRC32 V2
此crate提供了一个简单的CRC32实现。
使用方法
要使用此crate,请将以下内容添加到您的 Cargo.toml
文件
[dependencies]
crc32_v2 = "0.0.4"
然后,您可以使用 crc32
或 crc32_little
函数计算字节数组的CRC32校验和。
示例
use crc32_v2::byfour::crc32_little;
use crc32_v2::crc32;
let crc = crc32(0, &[0u8, 1u8, 2u8, 3u8]);
assert_eq!(crc, 0x8BB98613);
let crc_little = crc32_little(crc, &[0u8, 1u8, 2u8, 3u8]);
assert_eq!(crc, 0x8BB98613);
实现细节
CRC32算法使用标准多项式和查找表进行优化。
crc32
函数接受两个参数
start_crc
:初始CRC32值(通常为0)buf
:包含输入字节的字节切片
它返回一个 u32
,即输入缓冲区的CRC32校验和。