#hash #sha-2 #sha-1 #fluent #hashing #generate #interface

fluent-hash

一个轻量级的库,提供生成SHA-1和SHA-2摘要的流畅接口。

3个版本

0.2.3 2023年12月3日
0.2.2 2023年5月10日
0.1.1 2023年5月9日

#1139 in 密码学

Apache-2.0

13KB
178

Fluent Hash

fluent-hash是建立在ring加密库之上的包装器,它为生成SHA-1和SHA-2哈希提供了流畅的接口。

它提供了从以下类型生成哈希的便利方法:

  • &[u8]
  • Vec<u8>
  • &str
  • std::fs::File

它还支持将哈希格式化为字节或十六进制。

支持的哈希算法

以下SHA-1和SHA-2算法受支持:

  • SHA-1
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512_256

文档

请参阅以下文档:https://docs.rs/fluent-hash/

示例

导入fluent_hash类型。

use fluent_hash::Hashing::Sha1;
use fluent_hash::Hashing::Sha256;
use fluent_hash::Hashing::Sha384;
use fluent_hash::Hashing::Sha512;
use fluent_hash::Hashing::Sha512_256;
use fluent_hash::Hashing;
use fluent_hash::HashContext;
use fluent_hash::Hash;

哈希字节数组。

let result: Hash = Sha256.hash(b"hello, world");

哈希字节向量。

let result: Hash = Sha256.hash_vec(b"hello, world".to_vec());

哈希字符串。

let result: Hash = Sha256.hash_str("hello, world");

哈希文件。

let result: Hash = Sha256.hash_file("file.txt")?;

格式化哈希。

let bytes: &[u8] = result.as_bytes();
let bytes_vec: Vec<u8> = result.to_vec();
let hex: String = result.to_hex();

请参阅Web3开发者博客文章,其中展示了更多fluent-hash使用示例: https://web3developer.io/introducing-fluent-hash/

许可证

fluent-hash在Apache License版本2.0下分发。

免责声明

软件按“原样”提供,作者放弃与此软件相关的所有保证,包括所有暗示的适销性和适用性保证。在任何情况下,作者不对任何特殊、直接、间接或后果性损害或任何因使用或性能此软件而导致的任何损害承担责任,无论此类损害是否源于合同、疏忽或其他侵权行为,无论是在使用或与此软件的使用或性能相关的任何情况下。

依赖关系

~5–13MB
~232K SLoC