Class: UserPattern::Anonymizer

Inherits:
Object
  • Object
show all
Defined in:
lib/userpattern/anonymizer.rb

Overview

Produces a one-way anonymous session identifier that:

  • Is consistent within a single session/token lifetime (for per-session stats)

  • Rotates daily via a date-scoped salt (prevents cross-day correlation)

  • Cannot be reversed to recover user identity or session ID

Constant Summary collapse

DIGEST =
'SHA256'
TRUNCATE_LENGTH =
16

Class Method Summary collapse

Class Method Details

.anonymize(request) ⇒ Object



14
15
16
17
18
# File 'lib/userpattern/anonymizer.rb', line 14

def self.anonymize(request)
  raw = session_fingerprint(request)
  daily_salt = "#{UserPattern.configuration.anonymous_salt}:#{Date.current.iso8601}"
  OpenSSL::HMAC.hexdigest(DIGEST, daily_salt, raw)[0, TRUNCATE_LENGTH]
end