#hash #newline

normalized-hash

跨平台哈希算法

1 个不稳定版本

0.1.0 2023年8月19日

#1626算法


用于 normalized-hasher

MIT 许可协议

17KB
226

normalized-hash

badge github badge crates.io badge docs.rs badge license

跨平台哈希算法。

这是库 crate。如果您正在寻找二进制 crate,请访问 normalized-hasher

摘要

此哈希算法允许即使在意外将文件从使用 UNIX 行结束符 (LF) 转换为 Windows 行结束符 (CRLF) 时也能保持一致的哈希值。有关此类情况可能发生的原因以及为什么您应该关心此类情况的长期激励性演讲,请访问 normalized-hasher

代码示例

use std::path::PathBuf;

use normalized_hash::Hasher;

fn main() {
    let file_in = PathBuf::from("input.txt");
    let file_out = PathBuf::from("output.txt");

    // Simple example with default options, without writing an output file
    let hash = Hasher::new().hash_file(&file_in, None::<PathBuf>);
    println!("{}", hash);

    // More complex example, with writing output
    let hash = Hasher::new()
        .eol("\r\n")
        .no_eof(true)
        .hash_file(&file_in, Some(file_out));
    println!("{}", hash);
}

依赖项

~465KB
~10K SLoC