Il problema con l'utilizzo di una password su più siti è che tutti i tuoi account possono essere compromessi se anche un solo sito perde le tue password.
La tua soluzione, come indicato nella domanda, tenta di risolvere questo problema utilizzando un hash univoco su ciascun sito come password. Questo ha alcuni vantaggi, in quanto non richiede di mantenere un gestore di password (è sufficiente uno strumento per rigenerare gli hash secondo necessità) e si arriva a mantieni la semplicità di dover solo ricordare una password per tutti i siti.
Tuttavia, se ipotizziamo che gli stessi aggressori che ottengono l'accesso a una delle tue "password" possano anche violare quell'hash, il tuo schema fallisce efficacemente per lo stesso motivo per cui una password condivisa normale: Stai ancora utilizzando la stessa base password per ogni sito. Dal momento che l'attaccante, a questo punto, conoscerebbe anche il sale per l'hash crackizzato, può facilmente derivare il processo di generazione del sale (nella tua domanda, è semplicemente l'URL o qualche componente di esso). Ciò rende "noto" il sale di ciascun sito all'attaccante, e quindi ne annulla il valore.
Quindi, come possiamo correggere questo bug? Rendi il sale casuale e lungo. Indipendentemente dal fatto che tu includa o meno l'URL come componente, dipende da te, ma ecco il problema in cui ci imbattiamo ora: qualsiasi sale con un componente casuale abbastanza lungo da aggiungere un valore di sicurezza non sarà memorabile. (Almeno, non per i non savants.) Ottimo per la protezione dagli aggressori. Orribile per usabilità.
Quindi, cosa facciamo per compensare questo? Mantenere un foglio di calcolo o un database con un elenco dei siti e dei relativi sali associati.
Aspetta ... non siamo tornati indietro per avere un gestore di password ? L'unica differenza qui è che in realtà non stai memorizzando le tue password - stai solo memorizzando parte delle informazioni necessarie per ri-generare le password. Probabilmente, questo è meglio, nel senso che ottenere questi dati da solo non è sufficiente per ri-generare le tue password. Ma è davvero così utile?