From 4b3b5bb87cb4214fb3b09e3c7df9dc14ffa57074 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sun, 5 Apr 2026 14:12:53 +0200 Subject: [PATCH] docs(helpers): explain djb2 seed constant in stringHash --- frontend/src/helpers/stringHash.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/src/helpers/stringHash.ts b/frontend/src/helpers/stringHash.ts index b843b1fbe..976ff784a 100644 --- a/frontend/src/helpers/stringHash.ts +++ b/frontend/src/helpers/stringHash.ts @@ -1,6 +1,8 @@ // Deterministic non-cryptographic string hash (djb2 variant). // Used for stable pseudo-random selection keyed on date + user + bucket. export function stringHash(input: string): number { + // 5381 is the canonical djb2 seed — a prime that empirically yields a good + // distribution when combined with the `hash * 33 + c` step below. let hash = 5381 for (let i = 0; i < input.length; i++) { // hash * 33 + char, kept in 32-bit range via `| 0`.