From d2f28ded61d3ef1030c4f802264e8b7ed41269bd Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 7 Mar 2026 12:22:23 +0300 Subject: [PATCH] aggreggate/uniques: use string builder for hashing Signed-off-by: NotAShelf Change-Id: I7371a878c05f704feef26c6e86a04b956a6a6964 --- internal/aggregate/uniques.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/aggregate/uniques.go b/internal/aggregate/uniques.go index c606ecd..c1fe29b 100644 --- a/internal/aggregate/uniques.go +++ b/internal/aggregate/uniques.go @@ -6,6 +6,7 @@ import ( "encoding/hex" "fmt" "os" + "strings" "sync" "time" @@ -71,8 +72,13 @@ func generateSalt(t time.Time, rotation string) string { // Creates a privacy-preserving hash of visitor identity func hashVisitor(ip, userAgent, salt string) string { - combined := ip + "|" + userAgent + "|" + salt - h := sha256.Sum256([]byte(combined)) + var sb strings.Builder + sb.WriteString(ip) + sb.WriteString("|") + sb.WriteString(userAgent) + sb.WriteString("|") + sb.WriteString(salt) + h := sha256.Sum256([]byte(sb.String())) return hex.EncodeToString(h[:]) }