Quale algoritmo di hashing è ideale per l'uso sul web? [duplicare]

2

Sono nuovo qui e ho cercato il sito cercando una panoramica di quale algoritmo di hash usare sul web e perché.

Sembra essere il consenso sul fatto che gli algoritmi SHA-256 o altri algoritmi della famiglia SHA-2 siano i migliori perché non hanno le collisioni che hanno le MD5 e le tecniche hash precedenti. Mi chiedo se le tecniche della famiglia SHA-2 siano meno supportate sul Web a causa di altri motivi oltre alla sicurezza, come la facilità di implementazione o la velocità di esecuzione.

Su un sito Web che è già protetto dalla crittografia di un certificato SSL tramite TLS / HTTPS, i dati (ad esempio una password) sono già crittografati comunque (mettendo da parte i recenti problemi con Heartbleed). Quindi forse è stata data maggiore priorità agli algoritmi che sono più facili da implementare piuttosto che più sicuri? Sembra ancora abbozzato usare MD5 sul web, cioè per l'hashing delle password.

Quale algoritmo di hashing è il migliore per il Web e perché?

    
posta JHS 23.04.2014 - 01:02
fonte

2 risposte

5

Quale algoritmo è il migliore dipende da cosa lo stai usando. Se stai cercando di individuare il danneggiamento casuale dei dati, ad esempio, un algoritmo incredibilmente veloce come CRC-32 è l'ideale. D'altra parte, se stai cercando di proteggere gli hash delle password, vuoi un algoritmo intrinsecamente lento come bcrypt. Per proteggere i trasferimenti di dati da manomissioni dannose, si desidera un algoritmo veloce e crittograficamente sicuro come SHA-256. Infine, se è necessario interagire con il software di qualcun altro, si utilizza qualsiasi funzione di hash che si aspettano.

    
risposta data 23.04.2014 - 08:36
fonte
3

In caso di dubbi, usa SHA-256. Questa è la risposta predefinita per le situazioni in cui è necessaria una funzione hash generica ; per casi specializzati come hashing password , la situazione è diversi : non si desidera utilizzare MD5 o SHA-1 o SHA-2 o SHA-3 per le password, ma qualcosa come bcrypt.

SSL è uno standard distribuito con una lunga storia e in genere utilizza SHA-1. Questo va bene. Sebbene SHA-1 abbia alcune debolezze teoriche contro le collisioni, le collisioni non sono un problema nel modo in cui SHA-1 è usato in SSL (è usato come parte di HMAC , che lavora di più sulla resistenza di preimage rispetto alle collisioni). SHA-256 può essere utilizzato con SSL, ma solo con lo standard più recente (TLS 1.2) che non è ancora distribuito ovunque .

    
risposta data 23.04.2014 - 13:02
fonte

Leggi altre domande sui tag