Menu
Coddy logo textTech

מה זה Checksum (סכום ביקורת)?

Checksum (סכום ביקורת) הוא ערך קצר שמחושב מתוך בלוק של נתונים, כמו קובץ או מנת רשת, ונשמר או נשלח יחד איתו. חישוב מחדש שלו בהמשך והשוואה בין שני הערכים מראים אם הנתונים השתנו בגלל השחתה או שגיאה בהעברה.

מאת Kevin Spektor, מייסד שותף ו-CTO

עודכן ב-24 בספטמבר 2026

Checksumנשלחהגיעתוצאה
סכום הבייטים (mod 256)9C9Cיש התאמה
CRC-321540394315403943יש התאמה

הפכו ביט אחד ושני ה-checksums משתנים. החליפו שני תווים וכל הבייטים עדיין שם, כך שהסכום שלהם זהה: רק CRC-32, שתלוי בסדר, מבחין בשינוי.

הפצות Linux כמו Ubuntu ו-Debian מפרסמות קובץ בשם SHA256SUMS לצד קובצי ההתקנה שלהן. בכל שורה יש מחרוזת של 64 תווים ושם קובץ. כשההורדה מסתיימת, מריצים פקודה אחת על הקובץ שהתקבל. אם היא מדפיסה את אותה מחרוזת, כל מיליארדי הבייטים שלו הגיעו בשלמותם. אם ביט אחד התהפך בדרך, המחרוזת יוצאת שונה לגמרי.

המחרוזת הזו היא checksum: תקציר קטן שמשתנה כשהנתונים משתנים.

איך checksum עובד, שלב אחרי שלב

  1. השולח מריץ אלגוריתם checksum על הנתונים, בייט אחרי בייט, ומקבל תוצאה קצרה.
  2. התוצאה עוברת או נשמרת יחד עם הנתונים: בכותרת של מנת רשת, בתוך קובץ ZIP ליד כל קובץ דחוס, או בעמוד ההורדה.
  3. המקבל מריץ את אותו אלגוריתם על הנתונים שהוא קיבל בפועל.
  4. משווים בין שתי התוצאות. אם הן שוות, הנתונים כמעט בוודאות לא השתנו. אם הן שונות, הנתונים נפגמו, והמקבל דוחה אותם, מבקש אותם שוב, או מציג שגיאת checksum.

Checksum רק מזהה נזק; הוא לא יכול לומר איזה בייט השתנה או לתקן אותו. תיקון דורש קוד לתיקון שגיאות, כמו קודי Reed-Solomon בתקליטורים ובקודי QR.

ה-checksum הפשוט ביותר מחבר את כל הבייטים ושומר את 8 הביטים האחרונים של הסכום. הריצו את הקוד הזה כדי לראות איפה הרעיון עובד ואיפה הוא נכשל:

original  sum= 78  crc32=a1628836
flipped   sum= 80  crc32=a597580b
swapped   sum= 78  crc32=59dbf74b

שינוי של תו משנה את הסכום. החלפה בין שני תווים לא משנה אותו, כי לחיבור לא אכפת מהסדר, ולכן סכום הבייטים מאשר תשלום של 10 במקום 100. CRC-32 (cyclic redundancy check) מתייחס לנתונים כמספר בינארי ארוך אחד ומחלק אותו בפולינום קבוע של 33 ביט; השארית בת 32 הביטים תלויה במיקום של כל ביט, כך שההחלפה נתפסת. ההדגמה שלמעלה מאפשרת לנסות את זה על טקסט משלכם. CRC-32 תופס כל רצף של שגיאות באורך של עד 32 ביט.

אלגוריתמי checksum נפוצים

אלגוריתםגודלאיפה פוגשים אותו
ביט זוגיותביט אחדחיבורים טוריים, זיכרון עם זוגיות
ספרת ביקורת של Luhnספרה אחתמספרי כרטיסי אשראי, מספרי IMEI
Internet checksum16 ביטהכותרות של IPv4, TCP ו-UDP
Adler-3232 ביטפורמט הדחיסה zlib
CRC-3232 ביטZIP, gzip, PNG, מסגרות Ethernet
MD5128 ביטעמודי הורדה ישנים, כלים למציאת קבצים כפולים
SHA-256256 ביטהורדות תוכנה, קובצי התקנה של Linux, Bitcoin

חמשת הראשונים תופסים תקלות, לא תוקפים. מי שעורך קובץ יכול לשנות כמה בייטים כך שה-CRC-32 שלו יתאים שוב. MD5 ו-SHA-256 הן פונקציות גיבוב קריפטוגרפיות, שתוכננו כך שמציאת שני קלטים עם אותו פלט לא תהיה מעשית. MD5 נפרצה מאז (התנגשויות פורסמו ב-2004), וכך גם SHA-1 (ב-2017), ולכן הורדות רגישות מבחינת אבטחה משתמשות ב-SHA-256 או בחזק ממנו. MD5 עדיין תופסת השחתה מקרית מצוין.

איך בודקים checksum

בכל מערכת הפעלה יש פקודה מובנית:

# Windows (PowerShell)
Get-FileHash ubuntu.iso -Algorithm SHA256
# macOS
shasum -a 256 ubuntu.iso
# Linux
sha256sum ubuntu.iso

השוו את הפלט לערך שבעמוד ההורדה הרשמי; אותיות גדולות או קטנות לא משנות. ב-Python, hashlib עושה את אותה בדיקה, וקורא את הקובץ במנות כך שקובץ של 6 GB אף פעם לא צריך להיכנס כולו לזיכרון:

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
OK

שנו את hello world ל-hello World והריצו שוב: כל תו ב-checksum משתנה, והשורה האחרונה אומרת Checksum mismatch.

מה זו שגיאת checksum?

שגיאת checksum פירושה שהבדיקה נכשלה: הערך שחושב מהנתונים שיש לכם לא תואם לערך שנשמר או נשלח איתם. או שהנתונים השתנו, או שה-checksum השמור נפגם. ההודעה והתיקון תלויים במקום שבו היא מופיעה.

שגיאת checksum של CMOS או BIOS בהפעלה

הקושחה של מחשב (BIOS או UEFI) שומרת את ההגדרות שלה, כמו סדר האתחול והשעון, בזיכרון קטן שסוללת מטבע, בדרך כלל CR2032, שומרת בחיים כשהמחשב מנותק מהחשמל. לצד ההגדרות נשמר checksum שלהן. בכל הפעלה הקושחה מחשבת אותו מחדש, ואם הערכים שונים היא מציגה הודעה כמו CMOS Checksum Error - Defaults Loaded וחוזרת להגדרות היצרן.

הסיבה הרגילה היא סוללה חלשה או מתה, במיוחד כשגם השעון מתאפס. הפסקת חשמל בזמן שמירת ההגדרות, או ניקוי ה-CMOS עם ג'אמפר, גורמים לאותה תוצאה. כדי לתקן:

  1. היכנסו למסך ההגדרות (בדרך כלל Delete או F2 בזמן שהמחשב עולה), קבעו את התאריך, השעה וכל הגדרה ששיניתם, ואז שמרו וצאו (לרוב F10). אם ההודעה לא חוזרת, זה היה אירוע חד פעמי.
  2. אם היא חוזרת אחרי כל הפעלה קרה, כבו את המחשב, נתקו אותו מהחשמל והחליפו את סוללת ה-CR2032.
  3. אם ההודעה מזכירה את הקושחה עצמה, כמו BIOS ROM checksum error או Main BIOS checksum error, קובץ הקושחה פגום. בלוחות עם שבב BIOS גיבוי הוא משוחזר אוטומטית; באחרים, השתמשו בתכונת שחזור ה-BIOS של הלוח או צרבו את הקושחה מחדש מאתר היצרן, בלי לנתק את החשמל במהלך העדכון.

Checksum mismatch אחרי הורדה

ה-SHA-256 של הקובץ שלכם לא תואם לזה שבעמוד ההורדה. ייתכן שהקובץ חלקי או פגום (חיבור שנקטע, דיסק מלא), ייתכן שאתם משווים ל-checksum של קובץ אחר (גרסה אחרת או ארכיטקטורת מעבד אחרת), וייתכן שאתם משווים בין שני אלגוריתמים שונים: ערך MD5 הוא 32 תווים הקסדצימליים, ערך SHA-256 הוא 64. לעתים רחוקות, מישהו התעסק עם הקובץ.

בדקו את האלגוריתם ואת שם הקובץ, ואז הורידו את הקובץ שוב מהאתר הרשמי. אם גם עותק חדש מהמקור הרשמי לא תואם, אל תריצו אותו. מנהלי חבילות עושים את הבדיקה הזו בשבילכם: pip עוצר עם THESE PACKAGES DO NOT MATCH THE HASHES כשחבילה שהורדה שונה מהגיבוב שננעל.

שגיאת checksum בארכיון ZIP, RAR או 7z

פורמטים של ארכיונים שומרים CRC-32 של התוכן המקורי של כל קובץ. בזמן החילוץ הכלי מחשב אותו מחדש; WinRAR מדווח על אי התאמה כ-Checksum error ו-7-Zip כ-CRC Failed. בארכיון מוצפן, סיסמה שגויה מייצרת את אותה הודעה, כי סיסמה שגויה מפענחת לזבל. הורידו את הארכיון שוב, ודאו שכל החלקים של ארכיון מפוצל (.part1.rar, .part2.rar) נמצאים ומגיעים מאותה העלאה, והקלידו את הסיסמה מחדש. פקודת Repair archive של WinRAR עובדת הכי טוב על ארכיונים שנוצרו עם recovery record, והאפשרות "Keep broken files" שומרת את כל מה שכן חולץ כראוי.

שגיאות checksum במשחקים ובכלי רשת

משחקים משווים checksums של הקבצים שלהם, כך שעדכון חלקי או קובץ ששונה נכשלים בבדיקה. ב-Steam, האפשרות "Verify integrity of game files" מורידה מחדש כל קובץ שה-checksum שלו לא תואם. ב-Wireshark, אזהרות checksum על מנות שהמחשב שלכם עצמו שולח הן בדרך כלל לא שגיאות אמיתיות: כרטיס הרשת ממלא את ה-checksum אחרי ש-Wireshark כבר לכד את המנה.

תפיסות שגויות נפוצות

  • "checksum תואם מוכיח שהקובץ בטוח." הוא מוכיח שהקובץ תואם לערך שפורסם. אם תוקף שולט באתר, הוא יכול לשנות את שניהם, ולכן פרויקטים גם חותמים על קובצי ה-checksum שלהם עם מפתח.
  • "checksum יכול לתקן קובץ פגום." הוא רק מזהה את הנזק. התיקון הוא להשיג עותק תקין.
  • "checksum ו-hash הם דברים שונים." Checksum מתאר את התפקיד; פונקציית גיבוב כמו SHA-256 היא כלי אחד שיכול לבצע אותו.

לאן ממשיכים מכאן

חשבו ערכי MD5, SHA-1 ו-SHA-256 של כל טקסט במחולל הגיבובים. Checksums עובדים על נתונים גולמיים, אז מה זה בייט ומה זה ביט מסבירים מה בעצם מחובר כאן. מסד נתונים משתמש ב-checksums של דפים כדי לתפוס השחתה בדיסק, וההדמיה של טבלת גיבוב מראה שימוש נוסף בערך קצר שמחושב מנתונים.

שאלות נפוצות

האם SHA-256 הוא checksum?
כן, כשמשתמשים בו לאימות נתונים. SHA-256 היא פונקציית גיבוב קריפטוגרפית, והערך בן 64 התווים שהיא מפיקה לקובץ נקרא בדרך כלל ה-checksum מסוג SHA-256 של הקובץ. היא איטית יותר מ-CRC-32, אבל היא מגינה גם מפני שינויים מכוונים, כי בפועל אף אחד לא יכול לבנות קובץ אחר עם אותו ערך SHA-256.
איך מתקנים שגיאת checksum?
זה תלוי איפה היא מופיעה. בהפעלת המחשב, פתחו את הגדרות ה-BIOS, בדקו את התאריך וההגדרות, שמרו וצאו, והחליפו את סוללת המטבע של ה-CMOS אם השגיאה חוזרת. אחרי הורדה או בקובץ ארכיון, הורידו את הקובץ שוב מהמקור הרשמי, וודאו שכל החלקים של ארכיון מפוצל נמצאים ושהסיסמה נכונה.
מה גורם לשגיאת checksum?
הנתונים השתנו בין הרגע שבו חושב ה-checksum שלהם לבין הרגע שבו הוא נבדק. סיבות נפוצות הן הורדה שנקטעה, דיסק או דיסק און קי שמתקלקלים, סוללת CMOS חלשה, הפסקת חשמל בזמן שנכתבו הגדרות או קושחה, וסיסמה שגויה לארכיון מוצפן.
למה צריך checksum?
אחסון ורשתות אינם מושלמים. ביטים מתהפכים בגלל רעש חשמלי, הפרעות רדיו, זיכרון פלאש שחוק או דיסקים כושלים, ובלי בדיקה הנתונים הפגומים ישמשו בשקט. Checksum הוא דרך זולה להבחין בנזק, כדי שאפשר יהיה לשלוח את הנתונים שוב או לדחות אותם.
איך מייצרים checksum?
מריצים אלגוריתם checksum על הנתונים. לקובץ, השתמשו ב-sha256sum file ב-Linux, ב-shasum -a 256 file ב-macOS או ב-Get-FileHash file ב-PowerShell של Windows. ב-Python, hashlib.sha256(data).hexdigest() נותן checksum מסוג SHA-256, ו-zlib.crc32(data) נותן CRC-32.
איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל