openclaw/src/logging/redact-identifier.ts

15 lines
497 B
TypeScript

import crypto from "node:crypto";
export function sha256HexPrefix(value: string, len = 12): string {
const safeLen = Number.isFinite(len) ? Math.max(1, Math.floor(len)) : 12;
return crypto.createHash("sha256").update(value).digest("hex").slice(0, safeLen);
}
export function redactIdentifier(value: string | undefined, opts?: { len?: number }): string {
const trimmed = value?.trim();
if (!trimmed) {
return "-";
}
return `sha256:${sha256HexPrefix(trimmed, opts?.len ?? 12)}`;
}