This article has been translated from English to Malay.

Apa tujuan penghasilan hash?

Tujuan utama penghasilan hash adalah untuk memastikan integriti sesuatu data.

Oleh kerana hash yang dihasilkan adalah UNIK untuk data input, ia bertindak sebagai “cap jari” unik untuk data tersebut.

Ini menjadikan hash berguna untuk memastikan integriti data yang dihantar melalui saluran komunikasi yang tidak selamat seperti internet. Integriti data bermaksud bahawa data tersebut tidak diubah dengan cara yang tidak dibenarkan.

Nilai hash bagi data yang diterima boleh dibandingkan dengan nilai hash data sebelum ia dihantar untuk menentukan sama ada data telah diubah atau tidak.

Jika saya pos mesej dan juga nilai hash yang saya hasilkan daripadanya, anda boleh hasilkan nilai hash daripada mesej yang anda terima dan bandingkan nilai hash tersebut.

Menggunakan contoh yang sangat mudah, katakan kita nak jumpa untuk makan tengahari, dan sebelum saya keluar pintu, saya teringat kali terakhir kita bersama…

Bau badan

Walaupun keperibadian anda sangat menyenangkan, bau anda tidak menyenangkan langsung. 😬

Jadi saya nak hantar mesej kepada anda, “Tolong pakai deodoran.

Tapi sebelum saya hantar ini, saya jalankannya melalui fungsi hash (SHA-256). Hashnya ialah:

33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef

Saya hantar hash ini dahulu.*

KEMUDIAN saya hantar teks mesej sebenar.

Sebaik sahaja anda terima mesej saya, anda fikir, “Apa? Dia betul-betul cakap begitu kepada saya? Atau mesej itu dipintas semasa transit dan mesej asal telah diubah?”

Bau ketiak

Jadi anda jalankan mesej itu melalui fungsi hash yang sama.

33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef

Anda kemudian bandingkan hash anda dengan hash yang datang sebelum teks mesej.

Jika kedua-dua nilai hash adalah sama, maka ini membuktikan bahawa:

  1. Mesej dihantar dengan betul.
  2. Ketiak anda memang betul-betul berbau!
  3. Mesej tidak sengaja diubah oleh sesiapa antara saya menghantarnya kepada anda dan anda menerimanya.

Sudah tentu, dalam dunia sebenar, komputer kita yang melakukan semua ini.

Dan harapnya, anda menjaga bau ketiak anda agar sentiasa segar. 😅

*Secara teknikal, sebelum saya hantar hash kepada anda, ia sepatutnya dilindungi dengan cara tertentu, tetapi saya ingin mengekalkan contoh ini mudah. Bagaimana hash kekal dilindungi semasa transit akan dibincangkan dalam pelajaran seterusnya.

Contoh Dunia Sebenar Hashing: Kata Laluan Dalam Talian

Ini mungkin mengejutkan anda, tetapi anda mungkin menemui hashing dalam kehidupan seharian anda….setiap kali anda log masuk untuk menyemak emel anda. 📧

Emel menggunakan hashing

Apabila anda membuat alamat emel dan kata laluan, penyedia emel anda mungkin tidak menyimpan kata laluan sebenar anda.

Sebaliknya, penyedia emel anda menjalankan kata laluan melalui fungsi hash dan menyimpan hash kata laluan anda.

Setiap kali anda cuba log masuk ke akaun emel anda, penyedia emel anda menghash kata laluan yang ANDA masukkan dan membandingkan hash ini dengan hash yang telah disimpan.

Hanya apabila kedua-dua hash sepadan, anda dibenarkan untuk mengakses emel anda.

Jom lihat kenapa mereka TIDAK menyimpan kata laluan sebenar anda…

Kata Laluan dalam Teks Biasa

Jika kata laluan sebenar disimpan, dan penggodam berjaya masuk ke sistem, mereka boleh mencuri kata laluan tersebut. Ini pasti tidak baik untuk pengguna yang menggunakan kata laluan yang sama untuk beberapa laman web!

Penyelesaiannya adalah dengan menghash kata laluan…

Hash Kata Laluan

Dengan menghash kata laluan, syarikat melindungi maklumat pengguna. Walaupun jika seorang penggodam berjaya masuk ke dalam sistem, mereka tidak akan mempunyai akses kepada kata laluan sebenar, hanya hash sahaja.

Ingat, hash adalah tidak boleh diterbalikkan jadi mustahil bagi penggodam untuk mengetahui apa kata laluan sebenar hanya dengan melihat hash. Hashing memastikan bahawa data disimpan dalam keadaan bercampur, jadi lebih sukar untuk dicuri.
Kata Laluan Dihash dan Dilindungi

Apabila anda log masuk, penyedia emel anda tidak menyimpan kata laluan dalam teks biasa, yang mereka perlukan hanyalah hash.

Apabila anda masukkan kata laluan, ia dijalankan melalui fungsi hash.

Hasilnya dipadankan dengan hash yang disimpan dalam pangkalan data.

Jika nilai hash adalah sama, kata laluan adalah betul.

Kata laluan yang salah dimasukkan akan menghasilkan hash yang berbeza daripada yang disimpan. Hash tersebut tidak akan sepadan, jadi percubaan log masuk anda akan GAGAL.

Jadi seperti yang anda lihat, fungsi hash mengacaukan data dan menjadikannya tidak boleh dibaca. Walaupun jika penggodam mendapat akses kepada server penyedia emel anda, butiran yang disimpan tidak boleh diuraikan.