Ang hash ay isang fixed-length na string (digest) na nabuo mula sa input data ng anumang laki gamit ang isang hash function. Ang proseso ay one-way—hindi mo maaaring i-decrypt o i-reverse ang isang hash upang makuha ang orihinal na data. Iyon ang dahilan kung bakit ang "hash encryption" ay isang maling pangalan; Ang hashing ay hindi encryption.
Kabilang sa mga sikat na hash algorithm ang:
MD5 (hindi na ginagamit para sa seguridad na paggamit)
SHA-1 (hindi na ginagamit)
SHA-256, SHA-512 (bahagi ng pamilyang SHA-2)
SHA-3
bcrypt, scrypt, Argon2 (para sa secure na pag-hash ng password)
Nagsisilbi ang hashing ng ilang layunin sa cybersecurity at integridad ng data. Kabilang sa mga pangunahing dahilan sa paggamit ng hashing ang:
Integridad ng Data: Tinitiyak na hindi nabago ang data (hal., mga checksum ng file).
Imbakan ng Password: Ligtas na nag-iimbak ng mga password sa pamamagitan ng paghahambing ng mga hash sa halip na mag-imbak ng mga aktwal na password.
Mga Digital na Lagda: Ang mga hash ay nilagdaan sa halip na malalaking dokumento.
Kahusayan: Ang maliliit, nakapirming laki ng hash value ay mas mabilis na ihambing kaysa sa malalaking bloke ng data.
Dahil deterministic at mabilis ang mga hash, mainam ang mga ito para sa mga gawain sa pag-verify.
Ang paggamit ng hash function ay kinabibilangan ng:
Pag-input ng data (hal., isang file, string, o password).
Pagproseso ng data gamit ang hashing algorithm.
Pagkuha ng digest, na isang fixed-size na string na natatanging kumakatawan sa input.
Para sa proteksyon ng password:
Pagsamahin ang password sa isang asin (random na data).
Maglapat ng secure na hash function (hal., bcrypt o Argon2).
Itago nang ligtas ang resultang hash at asin.
Dahil hindi maibabalik ang mga hash, ibe-verify mo ang input (tulad ng isang password) sa pamamagitan ng pag-hash muli nito at paghahambing ng bagong hash sa nakaimbak.
Dapat gamitin ang pag-hash kapag:
Kailangang ma-verify ang integridad ng data (hal., pagsuri para sa katiwalian o pakikialam).
Kailangang ligtas na maimbak ang mga password (hindi naka-encrypt o plain-text).
Kasangkot ang mga digital na lagda at certificate (sigurado ng hashing ang pagiging tunay ng dokumento).
Mabilis na paghahambing ng data (hal., sa mga hash table o cache).
Ang pag-hash ay hindi angkop kapag kailangan mong bawiin ang orihinal na data sa ibang pagkakataon—iyan ang para sa pag-encrypt.