use hmac::{Hmac, Mac};
use sha2::Sha256;
use anyhow::{Result, anyhow};
pub fn sign_sha256(secret: &str, message: &str) -> Result<String> {
let mut mac = Hmac::<Sha256>::new_from_slice(secret.as_bytes())
.map_err(|e| anyhow!("HMAC 初始化失败: {e}"))?;
mac.update(message.as_bytes());
let result = mac.finalize().into_bytes();
Ok(base64::encode(result))
}