can we use XOR enc to store data in the string itself to optimize the DB queries?
Sì, ma non sarà più chiamato token, ma piuttosto un ticket (se si utilizza una crittografia simmetrica) o un certificato (se si utilizza la crittografia simmetrica). Come token, ticket e certificati sono stringhe utilizzate per l'autenticazione, ma in realtà contengono dati crittografati e / o crittografati, anziché solo un numero casuale.
Il server emette un ticket / certificato, crittografando tutti i dettagli di autenticazione come chi è l'utente e le relative autorizzazioni, un timestamp e un periodo di validità e, eventualmente, un salt. Per autenticare, il server decrittografa il ticket / certificato e convalida questi valori. I ticket e i certificati vengono spesso utilizzati nell'autenticazione distribuita senza un server centrale o in cui il server centrale potrebbe non essere raggiungibile dall'applicazione.
I biglietti e i certificati sono più difficili da implementare in modo sicuro, rispetto ai token; ma a causa della loro natura decentralizzata, possono scalare meglio ed essere utilizzabili in situazioni in cui l'autenticazione centrale non è possibile.
Tuttavia, raccomanderei qualcosa di più specifico della crittografia XOR. Mentre XOR è una parte di molti algoritmi di flusso, la parte più difficile nel fare la crittografia XOR sta generando il flusso pseudo casuale che hai usato per XOR sui dati.