Pensavo che sha256 fosse impossibile da decifrare (finora). Ma ho visto un sito Web che potrebbe decodificare il mio hash. Quindi è perché memorizzano le hastes conosciute in un database o decodificano davvero gli hash? Ecco un'immagine:
Sei corretto, le funzioni hash SHA256
, SHA384
e SHA512
sono (attualmente) ininterrotte, quindi non è possibile invertirle facilmente. MD5
e SHA1
sono considerati interrotti perché i ricercatori hanno trovato coppie di stringhe che producono lo stesso valore di hash, ma anche questi richiedono settimane o mesi di calcolo.
(nota: non mi piace che il sito usi "decrypt" perché è una parola che usi per la crittografia, non puoi "decifrare" un hash)
Quello che probabilmente stanno facendo è un attacco dizionario in cui hanno pre-calcolato gli hash per tutte le parole di dizionario comuni . Questo darebbe loro una tabella di ricerca che avrebbe preso in un hash e restituire la parola che lo produce.
Solo per dare un'idea della scala, ci sono 171.476 parole inglesi e un hash SHA256
prende 32 byte, quindi memorizzare gli hash SHA256
di tutte le parole inglesi richiederebbe solo circa 5 mb.
Il tuo hash non era incrinato, era pre-calcolato e inserito in una tabella arcobaleno .
L'hashing è una funzione crittografica unidirezionale progettata per essere confrontata e non decrittografata come un valore che è stato crittografato.
Quindi, ciò che questo sito Web ha fatto è stato preso un po 'di stringhe, le abbiamo sottoposte a hash usando vari algoritmi e memorizzato il valore dell'hash. In questo modo quando inserisci il tuo hash, confronta l'hash con i valori già memorizzati in modo da "invertire" l'hash. Ecco perché l'utilizzo di un sale è così importante durante l'hashing.
Leggi altre domande sui tag hash sha sha256 decryption