diff --git a/internal/cli/mfer.go b/internal/cli/mfer.go index 9bf9524..2277e8c 100644 --- a/internal/cli/mfer.go +++ b/internal/cli/mfer.go @@ -156,7 +156,7 @@ func (mfa *CLIApp) run(args []string) { }, &cli.StringFlag{ Name: "seed", - Usage: "Seed value for deterministic manifest UUID (hashed 1B times with SHA-256)", + Usage: "Seed value for deterministic manifest UUID (hashed 150M times with SHA-256, ~5-10s)", EnvVars: []string{"MFER_SEED"}, }, ), diff --git a/mfer/builder.go b/mfer/builder.go index fd7d4aa..2696744 100644 --- a/mfer/builder.go +++ b/mfer/builder.go @@ -93,11 +93,12 @@ type Builder struct { } // seedIterations is the number of SHA-256 rounds used to derive a UUID from a seed. -const seedIterations = 1_000_000_000 +// Tuned to take approximately 5-10 seconds on modern hardware. +const seedIterations = 150_000_000 // SetSeed derives a deterministic UUID from the given seed string. -// The seed is hashed 1,000,000,000 times with SHA-256 to produce -// 16 bytes used as a fixed UUID for the manifest. +// The seed is hashed 150,000,000 times with SHA-256 to produce +// 16 bytes used as a fixed UUID for the manifest (~5-10s on modern hardware). func (b *Builder) SetSeed(seed string) { b.fixedUUID = deriveSeedUUID(seed, seedIterations) }