TL;DR: Tokenise local-part and the domain of a user email separately to allow mods to see the values and more easily use the email address to identify sock puppets, spammers, and banned users re-registering.
Spitballing on this:
YES! I do have too much time to waste today
Comparing email addresses is a useful tool for hunting spammers and sock puppet accounts.
But for user privacy, most forum owners would turn off any display of email addresses to all other staff accounts. (If you haven't, fellow forum people - go and do it now!)
To keep the usefulness of email addresses in manually comparing suspicious accounts, easy to remember tokens might make sense.
To do this you could salt and SHA-256 hash the email address local-part separately from the domain, and make an easy to read token of each hash.
So, while
John.Smiths.Fake.Email@protonmail.com (plus a salt) might hash to:
551eff8d9d5d557535d124c21a48f0c6633e39e5a0d0eb8d2387535c094166a0
John.Smiths.Fake.Email might salt and hash to:
75c19d54bf908e93695136aed98cde098ef8cd64bd714f81fbbf84c7bd990ce4
Protonmail.com would then salt and hash to:
8b23c042130fb8768209d717cbfade176f454477d603473a89573561762bc430
But 75c19d54bf908e93695136aed98cde098ef8cd64bd714f81fbbf84c7bd990ce4@8b23c042130fb8768209d717cbfade176f454477d603473a89573561762bc430 is really hard to read.
If you took the hash 75c19d54bf908e93695136aed98cde098ef8cd64bd714f81fbbf84c7bd990ce4 and randomly assigned it the token (for instance) SpeakTrenchPortal5017 and similarly tokenised 8b23c042130fb8768209d717cbfade176f454477d603473a89573561762bc430 to PlacementBeamRavage3333...
The email's tokenised two-part salted SHA-256 hash would look like:
SpeakTrenchPortal5017@PlacementBeamRavage3333
Three words and four numbers makes (I think?) about 1 billion tokens available in the token space for either side of the @ if you count 100,000 English words - there are more than that, though. Move the numbers around and you can multiply that range.
That's not enough for Facebook, but it's enough for any forum.
Why do this?
If a bunch of indicators pointed to that account being a sock for another - any mod could easily see that they were both also on the same domain (PlacementBeamRavage3333) or had the same local part (SpeakTrenchPortal5017).
A forum admin could even make available to all staff a list of the tokens that represent fake email domains to reference.
That is not a totally robust system. A determined mod could make their own translation table out of the popular email domains and local-parts (just register a new account with a protonmail.com address and go look for the tokens to pop up on the output of an addon like Tickets). Once they found out, they would know that PlacementBeamRavage3333 is always the token for protonmail.com
But big deal, IMO.
A hacker with a leaked database might efficiently make their own as well - just check for posts of mods mentioning clear-text versions of known tokens. That sort of thing. But they would never get all the emails with this system, while right now they would get everything if they got access to the database with clear text emails.
A solution like this would mean mods would not have to be shown clear text email addresses to use them for sock puppet identification, and damage from a data leak would be minimal.
Now...
Tell me why this is overly complicated, with glaring holes in the logic