MD5 è indipendente dal sistema operativo e l'architettura. Quindi è "coerente".
Tuttavia, MD5 prende come input una sequenza arbitraria di bit e genera una sequenza di 128 bit. In molte situazioni, vuoi stringhe. Ad esempio, si desidera hash una password e la password è inizialmente una stringa. La conversione di quella stringa in una sequenza di bit non fa parte dello stesso MD5 e esistono diverse convenzioni. Non so precisamente di C#, ma il metodo Java equivalente String.getBytes()
utilizzerà il "set di caratteri di default della piattaforma" che può variare con l'installazione del sistema operativo. Allo stesso modo, l'output di MD5 viene spesso convertito in una stringa con notazione esadecimale e può essere in lettere maiuscole o minuscole o altro.
Così che, mentre MD5 per sé è coerente, insetti spesso si annidano nelle parti che preparano i dati per MD5 e post-process sua uscita. Attenzione.
fonte
2010-03-12 21:47:47
Stai facendo un hash MD5 per oscurare le password nel tuo database? Non si dovrebbe http://wblinks.com/notes/storing-passwords-the-wrong-better-and-even-better-way – gingerbreadboy