מחולל גיבוב
ודאו שהקובץ שהורדתם הוא הקובץ שפורסם. גררו אותו לכאן, הדביקו את ה-checksum שלהם וראו אם הוא תואם.
רץ בדפדפן שלכם. שום דבר שתדביקו או תגררו לכאן לא מועלה לשום מקום.
מפתח HMAC (לא חובה)
השאירו ריק לגיבוב רגיל. עם מפתח, כל שורה מציגה HMAC.
גיבוב לבד, שורה כמו e3b0… file.iso, או קובץ .sha256 שלם.
תואם אותו SHA-256 כמו זה שהדבקתם.
- MD5
5d41402abc4b2a76b9719d911017c592 - SHA-1
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d - SHA-256
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 - SHA-384
59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f - SHA-512
9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043
איך משתמשים
- גררו את הקובץ שהורדתם ללשונית קובץ, או הקלידו בלשונית טקסט.
- הדביקו את ה-checksum מדף ההורדה בשדה checksum צפוי. גיבוב לבד, שורה של
sha256sumאו קובץ.sha256שלם, הכול עובד. - קראו את התוצאה. האלגוריתם נבחר לפי האורך של מה שהדבקתם, אז אין מה לבחור.
- כל גיבוב מועתק בכפתור העתקה שלו, ב-hex קטן, HEX גדול או Base64.
מה זה עושה
הכלי מחשב MD5, SHA-1, SHA-256, SHA-384 ו-SHA-512 בבת אחת. משפחת SHA מגיעה מ-Web Crypto API שמובנה בדפדפן (crypto.subtle). MD5 לא נמצא ב-Web Crypto, אז זה מימוש קטן שנכתב ביד וקורא את הקובץ בחתיכות של 2 MB. התוצאות נבדקו מול הפלט של md5 ו-shasum.
מגבלות, בכנות: Web Crypto מגבב buffer שלם אחד, אז בשביל SHA הקובץ צריך להיכנס לזיכרון. עד בערך 2 GB דפדפנים עכשוויים מסתדרים; מעבר לזה מקבלים רק MD5. בנוסף, Web Crypto קיים רק בדפים מאובטחים (https או localhost). ל-ISO של 6 GB הטרמינל עדיף: shasum -a 256 file.iso ב-macOS, sha256sum file.iso ב-Linux, Get-FileHash file.iso ב-PowerShell.
טקסט מקודד ב-UTF-8 ומגובב בדיוק כפי שהוקלד. מכאן מגיעים רוב הגיבובים ה"שגויים": echo hello | sha256sum מגבב את hello ועוד ירידת שורה. השתמשו ב-printf '%s' hello | sha256sum, או סמנו כאן הוספת ירידת שורה בסוף כדי להתאים למה ש-echo עשה.
מלאו מפתח HMAC וכל שורה תציג HMAC של הקלט עם המפתח הזה (HMAC-SHA-256 וחבריו), מה שחתימות webhook משתמשות בו. אני בודק checksum בעיקר אחרי העברת גיבויי cPanel בין שרתים; הפקודות נמצאות במדריך cPanel משורת הפקודה. אותו SHA-256 יושב גם בתוך תעודת SSL, שם רשות האישורים חותמת על הגיבוב שלה: ראו את המדריך ל-SSL.
שאלות
למה הגיבוב שלי שונה מזה שבאתר?
כי גיבבתם משהו קצת אחר. בקבצים זו בדרך כלל הורדה שלא הושלמה או checksum של גרסה או ארכיטקטורה אחרת. בטקסט זו ירידת שורה בסוף (echo מוסיף אותה), סופי שורה של Windows או קידוד אחר. בית אחד ששונה משנה את כל הגיבוב, אז גיבוב "כמעט זהה" לא אומר קובץ כמעט זהה.
האם MD5 עדיין בטוח?
לזיהוי הורדות פגומות כן, לאבטחה לא. נזק אקראי לא ייצור MD5 תואם. אבל ליצור בכוונה שני קבצים שונים עם אותו MD5 אפשר בפועל מאז 2004, ו-SHA-1 נפל באותה דרך ב-2017. אם ה-checksum צריך להוכיח שאף אחד לא החליף את הקובץ, השתמשו ב-SHA-256 וקחו את ה-checksum ממקום אחר מהמראה של הקובץ, ועדיף חתום.
איך בודקים SHA-256 משורת הפקודה?
ב-macOS shasum -a 256 file.iso, ב-Linux sha256sum file.iso, וב-Windows PowerShell Get-FileHash file.iso (SHA-256 הוא ברירת המחדל שם). אם המפרסם מצרף קובץ SHA256SUMS, הפקודה sha256sum -c SHA256SUMS בודקת את כל הקבצים שמופיעים בו.
אפשר לפענח גיבוב MD5 או SHA-256?
לא. גיבוב הוא לא הצפנה, הוא טביעת אצבע: אין מפתח ואין דרך להריץ אותו אחורה. אתרי ה-"MD5 decrypt" מחזיקים טבלאות ענק של גיבובים של מילים נפוצות וסיסמאות שדלפו, ופשוט מחפשים בהן את שלכם. כך מוצאים password123, לא קובץ אקראי או משפט סיסמה ארוך. מאותה סיבה שומרים סיסמאות בגיבוב איטי עם salt, כמו bcrypt או Argon2, ולא ב-MD5 או SHA-256 פשוטים.
SHA-256 או SHA-512: במה להשתמש?
לבדיקת הורדה, השתמשו במה שהמפרסם מציין; הכלי מחשב את כולם בכל מקרה. שניהם בטוחים היום. SHA-256 הוא ברירת המחדל הרגילה ל-checksum ולתעודות. SHA-512 נותן גיבוב ארוך יותר, ובתוכנה על מחשבי 64 ביט הוא לעתים קרובות קצת יותר מהיר. SHA-384 הוא SHA-512 מקוצר (עם ערכי התחלה אחרים), ופוגשים אותו בעיקר ב-TLS ובמאפייני integrity="sha384-…" של תגי script, שמקבלים את גרסת ה-Base64.