Ovviamente ogni operazione richiede risorse e va bilanciato il livello di sicurezza che si vuole mantenere con le risorse richieste dallo stesso.

Ogni reuqest infatti deve eseguire una serie di controlli (anche da database) e questo pesa.
Come pesano le forcedure di hashing.

Quindi puoi pensare varie soluzioni eseguire i test di performance , eseguire qualche conteggio in base all'utenza media e di picco sul sistema e verificare quale soluzione possa essere la migliore.

Diciamo che crc potrebbe anche andarti bene che generi un checksum eseguendo XOR sulla stringa ... e quindi e' abbastanza veloce poi io farei alcune funzioni di prova
Avvierei i test e in base ai risultati deciderei