Lo scopo dei metodi hash elencati (i metodi forniti dagli oggetti comuni per conformarsi a un'interfaccia usata dalle collezioni standard) è di mappare tutti i possibili valori per i quali viene calcolato un hash sull'intero intervallo di valori validi del tipo di valore hash . La casualità usata in questa mappatura non è per sicurezza. La mappatura deve essere sufficientemente casuale in modo che sequenze e pattern comuni non causino una distribuzione non uniforme nell'uso di bucket comuni alle raccolte basate su hash.
Le mappe hash, i multimaps e gli insiemi possono essere usati in schemi di sicurezza più grandi ma, da soli, non sono intesi per essere sicuri. Sono semplicemente raccolte progettate per fornire una ricerca indicizzata. Gli hash utilizzati in questo modo forniscono indici molto più veloci rispetto agli alberi binari.
Il termine hashCode è in realtà fuorviante in questo modo. Creazione di un hash per un tipo di stringa in modo che una mappa hash possa essere indicizzata utilizzando tale stringa non è una codifica. Il valore hash risultante derivante da un algoritmo di hashing di questo tipo può eseguire il mapping su un numero elevato di valori oggetto, ma l'intenzione in questo contesto NON è quella di nascondere tali valori oggetto da un utente malintenzionato.
Nel caso degli algoritmi hash MD5 o SHA utilizzati nei protocolli di sicurezza, l'intenzione è quella di creare una probabilità matematicamente bassa di indovinare il valore di input dall'hash in un numero praticamente possibile di tentativi. I metodi forniti da oggetti comuni in queste lingue in modo che possano essere inseriti in raccolte che li indicizzano utilizzando bucket non devono MAI essere usati per sostituire gli algoritmi hash progettati per essere utilizzati nei protocolli di sicurezza.