Am observat că algoritmul SHA512 dă aceeași ieșire, indiferent dacă introduc salut azi sau mâine, sau dacă folosesc computerul meu sau al surorii mele.
Ei bine, da - funcțiile hash nu ar fi foarte utile dacă ar da răspunsuri diferite uneori.
Utilizarea clasică pentru o funcție hash este în cadrul unui algoritm de semnătură; algoritmul de bază se ocupă de obicei doar de valori de dimensiuni limitate și deseori dorim să semnăm mesaje destul de lungi. Deci, ceea ce facem este să trecem mesajul nostru lung printr-o funcție hash (pentru a crea o valoare scurtă, în acest caz, de 512 biți în lungime) și să semnăm acea valoare scurtă. Dacă verificatorul a apelat funcția hash pe același mesaj original și a primit o valoare diferită, verificarea nu ar funcționa.
Având în vedere cele de mai sus, înseamnă asta că cunoașterea codului hash rezultat a priori îmi permite să descifrez că intrarea SHA512 corespunzătoare este „bună ziua”?
Ei bine, ceea ce puteți face este să încercați să efectuați SHA512 pe diferite intrări diferite; dacă una dintre intrări se întâmplă să fie „bună ziua”, atunci da, veți vedea aceeași ieșire și veți deduce că (cu excepția unei coincidențe incredibile) intrarea inițială a fost și „bună ziua”.
Cu toate acestea, acesta este în esență cel mai bun lucru pe care îl puteți face; cu o funcție hash bună (și SHA512 este o funcție hash bună), în esență nu există nicio modalitate de a recupera șirul original (sau un alt șir care are aceeași valoare) fără a încerca diverse ghiciri.