Files
veritas-suite/crates/veritas-core/src/hwid.rs
T

18 lines
618 B
Rust

use sha2::{Digest, Sha256};
/// Computes a unique hardware fingerprint (CPU / Machine identifier).
pub fn generate_hardware_id() -> String {
let mut hasher = Sha256::new();
let hostname = std::env::var("COMPUTERNAME")
.or_else(|_| std::env::var("HOSTNAME"))
.unwrap_or_else(|_| "UNKNOWN-HOST".to_string());
let username = std::env::var("USERNAME")
.or_else(|_| std::env::var("USER"))
.unwrap_or_else(|_| "UNKNOWN-USER".to_string());
let raw_id = format!("{}:{}", hostname, username);
hasher.update(raw_id.as_bytes());
format!("{:x}", hasher.finalize())
}