use serde::{Deserialize, Serialize};
use sha2::{Sha256, Digest};
use hex;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SecretFingerprint {
pub hash: String, pub provider: String, pub detected_at: String, pub severity: String, }
impl SecretFingerprint {
pub fn from_secret(secret: &str, provider: &str, salt: &[u8]) -> Self {
let mut hasher = Sha256::new();
hasher.update(salt);
hasher.update(secret.as_bytes());
let hash = hex::encode(hasher.finalize());
Self {
hash,
provider: provider.to_string(),
detected_at: chrono::Utc::now().to_rfc3339(),
severity: "high".to_string(),
}
}
}