1个稳定版本
1.0.0 | 2022年4月8日 |
---|
#2120 in 加密
9KB
58 行
WasmiumHashID
使用TAI64N作为时间戳和Blake3作为加密哈希算法,按时间顺序创建加密安全的ID的方式。
这在你需要按时间排序ID的地方很有用。前12个字节是TAI64N时间戳,其余32个字节代表一个Blake3哈希。
要提取安全哈希,只需从第12个字节读取数组。
哈希ID的主要数据结构
结构
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct WasmiumHashID {
// TAI64N timestamp converted to a byte array
tai_timestamp: [u8; 12],
// Blake3 `blake3::Hash` converted into a byte array
blake3hash: [u8; 32],
}
使用方法
use wasmium_hash_id::WasmiumHashID;
// The message in bytes
let message_id = [0u8; 8];
// Hash the message to get the `blake3::Hash`
let blake3_hash = blake3::hash(&message_id);
// Generate the hash
let hash_id = WasmiumHashID::new(blake3_hash).build();
// Get the original TAI64N timestamp
WasmiumHashID::get_timestamp(hash_id);
// Get the orignal Blake3 Hash
WasmiumHashID::get_blake3_hash(hash_id);
依赖关系
~4.5MB
~103K SLoC