Class: UserPattern::Anonymizer
- Inherits:
-
Object
- Object
- UserPattern::Anonymizer
- 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 |