#blake3 #hash #id #secure #time #timestamp #tai64n

wasmium-hash-id

使用TAI64N作为时间戳和Blake3作为安全哈希,以时间顺序存储加密安全的ID的方式

1个稳定版本

1.0.0 2022年4月8日

#2120 in 加密

Apache-2.0

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