Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Fahami checksum dan hadnya

Checksum nampak lebih kuat daripada pariti, jadi mudah tersalah anggap ia menjaga data selamat.

Dalam halaman ini
  1. Bagaimanakah checksum ringkas berfungsi?
  2. Contoh berlangkah
  3. Apakah kesilapan yang dilakukan pelajar?
  4. Semak kendiri
  5. Ke mana selepas ini?

Checksum (hasil tambah semak) ialah nombor yang dikira daripada satu blok data dan dihantar bersamanya. Penerima mengulang pengiraan. Jika nombornya berbeza, blok itu berubah semasa perjalanan, jadi penerima menolaknya.

Soalan meminta anda mengira checksum, membandingkan dua nilai dan menyatakan apa yang kaedah itu boleh dan tidak boleh lakukan. Perkataan yang anda pilih sama penting dengan hasil tambah.

Pelajaran ini datang selepas pariti dalam penghantaran dan semakan data.

Bagaimanakah checksum ringkas berfungsi?

Untuk memudahkan aritmetik, pelajaran ini menggunakan versi pengajaran: tambah nilai, kemudian ambil baki selepas dibahagi 100. Checksum sebenar menggunakan peraturan berbeza, jadi ikut sukatan dan guru anda untuk versi yang perlu diketahui.

  1. Tambah semua nilai data.
  2. Ambil hasil tambah MOD 100 untuk mendapat checksum.
  3. Hantar data dan checksum bersama.
  4. Penerima mengulang langkah 1 dan 2 pada data yang tiba dan membandingkan.

Contoh berlangkah

Empat nilai data dihantar: 52, 87, 19, 66.

total ← 0
FOR i ← 1 TO 4
   total ← total + Data[i]
NEXT i
checksum ← total MOD 100

Jejak:

iData[i]total
mula0
15252
287139
319158
466224

Kemudian 224 MOD 100 = 24. Semak dengan tangan: 52 + 87 = 139, 139 + 19 = 158, 158 + 66 = 224, dan 224 − 200 = 24.

Penerima, kes 1. Blok tiba sebagai 52, 87, 91, 66. Jumlahnya 296, dan 296 MOD 100 = 96. Ini tidak sama dengan 24, jadi penerima mengesan ralat.

Penerima, kes 2. Blok tiba sebagai 87, 52, 19, 66. Jumlah masih 224, jadi checksum ialah 24. Semakan lulus walaupun dua nilai bertukar tempat.

Apakah kesilapan yang dilakukan pelajar?

Ayat lazim: “Checksum menjadikan data selamat, jadi tiada sesiapa boleh mengubahnya.”

Ini salah. Checksum ialah cara untuk mengesan perubahan tidak sengaja. Orang yang mengubah data dengan sengaja boleh mengira checksum baharu dan menghantarnya bersama, jadi penerima melihat padanan. Perkataan yang jujur ialah: “Checksum boleh mengesan banyak ralat tidak sengaja, tetapi ia tidak menghalang seseorang mengubah data dengan sengaja, dan ia boleh terlepas sesetengah perubahan seperti nilai bertukar tempat.”

Semak kendiri

1. Kira checksum (hasil tambah MOD 100) bagi 14, 35, 28, 9.

Lihat jawapan

14 + 35 = 49, 49 + 28 = 77, 77 + 9 = 86. 86 MOD 100 = 86.

2. Checksum penghantar ialah 95 bagi nilai 40, 25, 30. Penerima menerima 40, 25, 31. Adakah semakan lulus?

Lihat jawapan

40 + 25 + 31 = 96, jadi checksum penerima ialah 96. Ia berbeza daripada 95, maka ralat dikesan.

3. Berikan satu sebab checksum bukan ciri keselamatan.

Lihat jawapan

Sesiapa yang mengubah data boleh mengira semula checksum dan menggantikannya, jadi penerima melihat padanan. Ia hanya mengesan perubahan tidak sengaja.

Ke mana selepas ini?

Akhir sekali, asingkan semakan yang hanya menyedari masalah daripada kaedah yang membetulkannya dalam pengesanan lawan pembetulan ralat. Gunakan kotak pasir penaakulan Python selamat untuk menulis gelung hasil tambah dan baki sendiri dan mengujinya dengan nilai di atas. Kemudian cuba set latihan.

Jika anda mahu tahu sama ada ayat jawapan anda cukup tepat untuk markah penuh, guru dalam tuisyen Computer Science satu dengan satu dalam talian boleh menyemaknya.

Soalan lazim

Apakah itu hasil tambah semak (checksum)?

Checksum ialah nilai yang dikira daripada satu blok data dan dihantar bersama data itu. Penerima mengira nilai itu semula daripada apa yang tiba dan membandingkannya. Jika kedua-dua nilai berbeza, data berubah semasa penghantaran. Sistem sebenar menggunakan pengiraan lebih rumit daripada hasil tambah ringkas di sini.

Bolehkah checksum melindungi data daripada penggodam?

Tidak. Sesiapa yang mengubah data boleh mengira semula checksum dan menggantikannya, jadi penerima melihat padanan. Checksum direka untuk menyedari perubahan tidak sengaja seperti hingar pada talian. Perlindungan daripada perubahan sengaja memerlukan alat lain, seperti penyulitan dan tandatangan digital.

Adakah checksum lebih baik daripada pariti?

Ia meliputi satu blok dan bukan satu bait, dan hasil tambah ringkas mengesan banyak perubahan tunggal yang terlepas oleh bit pariti. Ia masih mempunyai jurang, contohnya apabila dua nilai bertukar tempat. Anggap ia semakan yang lebih kuat, bukan yang sempurna.

Dikemas kini:

Langkah seterusnya

Jika anda mahu pandangan kedua tentang jawapan anda mengenai kelebihan dan had checksum, guru satu dengan satu boleh menyemak dan menajamkannya.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa: tanya di sini

  • 9,000+ pelajar telah dibantu melalui perkhidmatan kami
  • 9+ tahun membantu pelajar IGCSE