This article has been translated from English to Tagalog.

Ano ang purpose ng hashing?

Ang main purpose ng hashing ay para i-verify ang integrity ng isang data.

Dahil ang hash na generated ay UNIQUE sa input data, para itong unique na “fingerprint” ng input data.

Nagiging useful ang hash para i-verify ang integrity ng data na pinapasa sa mga insecure na communication channels tulad ng internet. Data integrity lang naman ibig sabihin nito ay hindi nabago ang data sa hindi pinahintulutang paraan.

Puwedeng ikumpara ang hash value ng natanggap na data sa hash value ng data bago ito ipinadala para malaman kung nabago ang data.

Kung ipo-post ko pareho ang mensahe at ang hash value na nakuha ko mula dito, puwede mong i-generate ang hash value mula sa mensahe na natanggap mo at ikumpara ang mga hash values.

Gamit ang isang simpleng halimbawa, sabihin nating magkikita tayo para mag-lunch, tapos bago ako lumabas ng pinto, naalala ko ang huli nating pagkikita…

Body odor

Habang okay ang personality mo, hindi okay ang amoy mo. 😬

Kaya gusto kong magpadala ng mensahe sayo, “Mag-deodorant ka naman, please.

Pero bago ko to ipadala, pinadaan ko muna ito sa isang hash function (SHA-256). Ang hash ay:

33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef

Ipinadala ko muna sa'yo ang hash una.*

TSaka ko ipinadala ang actual na text message.

Pag natanggap mo na ang message ko, iisipin mo, “WTF? Talaga bang sinabi niya 'to sakin? O baka naman na-intercept ang message sa transit at na-alter ang original message?”

Armpit stinks

Kaya gagamitin mo ang message sa parehong hash function.

33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef

Pagkatapos, ikumpara mo ang hash mo laban sa hash na dumating bago ang text message.

Kung pareho ang dalawang hash values, ibig sabihin nito:

  1. Naipadala ng tama ang mensahe.
  2. Na talagang mabaho ang kilikili mo!
  3. Na hindi sadyang nabago ang mensahe ng iba sa pagitan ng pagpapadala ko nito sa'yo at pagdating sa'yo.

Siyempre, sa totoong mundo, ang mga kompyuter natin ang gumagawa nito para sa atin.

At sana, panatilihin mong mabango ang kilikili mo. 😅

*Technically, bago ko ipadala ang hash sa'yo, dapat ito ay protektado sa ilang paraan, pero gusto kong gawing simple ang halimbawa. Kung paano mananatiling protektado ang hash habang nasa transit ay tatalakayin sa susunod na lesson.

Real-World Example ng Hashing: Online Passwords

Baka ikagulat mo, pero malamang na-encounter mo na ang hashing sa araw-araw mong buhay…tuwing nag-log in ka para i-check ang email mo. 📧

Email uses hashing

Kapag gumawa ka ng email address at password, malamang na hindi sine-save ng email provider mo ang actual na password mo.

Sa halip, pinapadaan ng email provider mo ang password sa hash function at isinesave ang hash ng password mo.

Sa tuwing susubukan mong mag-log in sa email account mo, ang email provider mo ay hinahash ang password na INI-ENTER mo at ikumpara ang hash nito sa hash na naka-save.

Only kapag nag-match ang dalawang hashes ay mabibigyan ka ng authorization para ma-access ang email mo.

Tingnan natin kung bakit hindi nila sine-save ang actual na password mo…

Password in Plaintext

Kung sine-save ang actual passwords, at nakapasok ang hackers sa kanilang system, puwede nilang nakawin ang mga ito. Hindi ito okay para sa mga users na gumagamit ng parehong password sa maraming websites!

Isang solusyon ay i-hash ang password…

Hash Pasword

Sa paghash ng password, pinoprotektahan ng kumpanya ang impormasyon ng user. Kahit na makapasok ang hacker sa system, wala silang access sa actual passwords, kundi sa hashes lang.

Tandaan, ang hashes ay irreversible kaya imposibleng malaman ng hacker kung ano ang actual na password sa pamamagitan lamang ng pagtingin sa hash. Tinitiyak ng hashing na ang data ay nasa scrambled na estado, kaya mas mahirap nakawin.
Password Hashed and Protected

Tuwing mag-log in ka, hindi tine-take note ng email provider mo ang plain text password, kailangan lang nila ang hash.

Pag ini-enter mo ang password mo, ito ay pinapadaan sa hash function.

Ang output ay itutugma sa hash na na-save sa database.

Kung pareho ang hash values, ang password ay tama.

Ang maling password na na-enter ay magpo-produce ng ibang hash kaysa sa isa na naka-save. Hindi magmamatch ang hashes, kaya ang login attempt mo ay mag-FAIL.

Kaya makikita mo, ang hash function ay nag-garble ng data at ginagawang hindi mabasa. Kahit na makuha ng hacker ang access sa server ng email provider mo, ang mga detalye na naka-store ay hindi pwedeng unscramble.