SHA-1 non è una funzione di hash ideale (in realtà, nemmeno le funzioni SHA-2). La doppia invocazione di hash nasconde alcune delle carenze interne di SHA-1. Questo è simile a HMAC , che usa anche una doppia invocazione hash per quasi gli stessi motivi. Più in dettaglio, vogliamo che la funzione che mappa lo username-and-password in x (funzione selezionata da salt in una famiglia di funzioni) si comporti come un oracolo casuale e le normali proprietà di sicurezza di le funzioni di hash (resistenza di collisione, resistenza di preimage) non sono sufficienti a garantire tale comportamento.
Il nome utente è coinvolto in modo da rendere più semplici le prove di sicurezza: consente all'analisi di sicurezza di concentrarsi su un singolo utente, senza dover tenere conto di ciò che accade quando un determinato server accetta più utenti, ciascuno con la propria password. Il separatore partecipa allo stesso obiettivo: in caso contrario, "john" con la password "ny67dtzo" e "johnny" con la password "67dtzo" vivrebbero nello stesso mondo, per quanto riguarda la sicurezza.