Ho spostato questa domanda da Stackoverflow in questo posto. So che potrebbe essere una questione di "opinione", ma non sto cercando un'opinione privata, ma una fonte della decisione finale di mantenerla in questo modo.
Mi è stato insegnato che nessuno cerca di aprire una porta quando non si sa che la porta esiste. La migliore difesa sarebbe quindi quella di nascondere una porta. Potrebbe essere facilmente visto nei vecchi film di guerra - nessuno avrebbe tenuto nascosto un nascondiglio. Era sempre coperto da qualcosa che suggeriva che "non c'è nulla di interessante lì".
Supporrei che in crittografia funzionasse allo stesso modo. Perché allora l'hash generato da MD5 partiva da $ 1 $ e diceva che cos'è un hash in primo luogo e quindi che tipo di hash è (MD5)?
Ora, vedo che sha512 fa esattamente la stessa cosa. Non è una debolezza da solo? C'è qualche ragione particolare per cui avremmo dovuto farlo in questo modo?
La domanda principale è: devo mescolare il mio hash prima di memorizzarlo per nasconderlo a un potenziale nemico? Se non ce n'è bisogno, allora perché?
Per evitare risposte che suggeriscono che l'oscurità non è la sicurezza, proporrei questa immagine. È la seconda guerra mondiale. Hai appena ricevuto un suggerimento che SS sta venendo a casa tua sospettando che tu stia nascondendo i partigiani, e questo è vero. Non hanno tempo per scappare. Hai due scelte in cui puoi nasconderle - nel migliore dei casi al sicuro, o nel buco nascosto sotto il pavimento, nascosto così bene che persino i tuoi genitori non sospettavano che fosse lì. Qual è la tua proposta? Ti convinceresti che la migliore sicurezza è la scelta migliore?
Se so che c'è un tesoro nascosto su un'isola, mi piacerebbe sapere quale isola è o non comincerò a cercare.
Non sono ancora convinto. Chris Jester-Young finora mi ha dato qualcosa a cui pensare quando suggerisco che ci possono essere più algoritmi che generano lo stesso hash da dati diversi.