מחשבון קוד גיבוב Fowler-Noll-Vo FNV1-32
פורסם: 18 בפברואר 2025 בשעה 0:16:58 UTC
עודכן לאחרונה: 12 בינואר 2026 בשעה 13:29:29 UTC
Fowler-Noll-Vo FNV1-32 Hash Code Calculator
פונקציית הגיבוב FNV-1 של 32 סיביות היא חלק ממשפחת פונקציות הגיבוב Fowler–Noll–Vo (FNV), המיועדות לגיבוב מהיר תוך שמירה על פיזור טוב של ערכי גיבוב. היא משמשת בדרך כלל ביישומים כמו טבלאות גיבוב, סכומי בדיקה וחיפושי נתונים. היא מייצרת קוד גיבוב של 32 סיביות (4 בתים), המיוצג לעתים קרובות כמספר הקסדצימלי בן 8 ספרות.
גילוי נאות: לא כתבתי את היישום הספציפי של פונקציית ה-hash המשמשת בדף זה. זוהי פונקציה סטנדרטית הכלולה בשפת התכנות PHP. יצרתי את ממשק האינטרנט רק כדי להפוך אותו לזמין לציבור כאן מטעמי נוחות.
אודות אלגוריתם ה-Hash של Fowler-Noll-Vo FNV-1 באורך 32 סיביות
אני לא מתמטיקאי, אבל אנסה להסביר את פונקציית הגיבוב הזו באמצעות אנלוגיה שעמיתיי שאינם מתמטיקאים יוכלו להבין. אם אתם מעדיפים הסבר מתמטי מדויק ומפחיד, אני בטוח שתוכלו למצוא אותו במקום אחר ;-)
ראשית, בואו נחשוב על אלגוריתם FNV-1 כמתכון להכנת שייק מיוחד. כל מרכיב שאתם מוסיפים (כמו פירות, חלב או דבש) מייצג פיסת מידע - כמו אותיות, מספרים או אפילו קובץ שלם.
כעת, המטרה היא לערבב את המרכיבים הללו בצורה ספציפית מאוד, כך שאפילו השינוי הקטן ביותר במתכון (כמו הוספת אוכמניות נוספת אחת) יגרום לשייק להיות טעים לחלוטין. כך פועלות פונקציות גיבוב - הן יוצרות "טעם" (או ערך גיבוב) ייחודי לכל קבוצה ייחודית של מרכיבים (או נתוני קלט).
הדרך שבה אלגוריתם FNV-1 עושה זאת היא תהליך רב-שלבי:
שלב 1: התחל עם בסיס (בסיס קיזוז)
חשבו על זה כמו לשפוך בסיס מיוחד לשייק לתוך הבלנדר שלכם. הבסיס הזה תמיד זהה, לא משנה אילו מרכיבים אתם מוסיפים. ב-FNV-1, זה נקרא "בסיס קיזוז" - פשוט מספר התחלתי מפואר.
שלב 2: הוספת רכיבים אחד אחד (עיבוד נתונים)
עכשיו אתם מתחילים להוסיף את המרכיבים שלכם, אחד בכל פעם - נניח תות, אחר כך בננה, ואז קצת דבש. כל אחד מאלה מייצג בייט של נתונים.
שלב 3: ערבוב עם מכפיל סודי (The FNV Prime)
אחרי הוספת כל מרכיב, לוחצים על כפתור הערבוב, אבל הנה הטוויסט: הבלנדר מכפיל את הכל ב"מספר קסם" סודי שנקרא מספר ראשוני של FNV. זה עוזר לערבב דברים ממש טוב.
שלב 4: הוספת קורטוב של קסם (פעולת XOR)
לפני הוספת המרכיב הבא, מפזרים מעט אבק קסמים (זוהי פעולת XOR). זה כמו להפוך את הטעם בדרכים בלתי צפויות, ולוודא שאפילו שינויים קטנים יעשו הבדל גדול.
שלב 5: חזור על הפעולה עד לסיום
אתה ממשיך לערבב ולפזר קסם אחרי כל מרכיב חדש עד שאתה מסיים לעבד הכל.
שלב 6: שייק סופי (ערך גיבוב)
כשמסיימים, שופכים את השייק. הטעם הסופי (ערך ה"האש") ייחודי לשילוב המדויק הזה של מרכיבים. אם הייתם מוסיפים אפילו אוכמניות אחת נוספת, הטעם היה שונה לחלוטין.
הגרסה המוצגת כאן היא גרסת 32 סיביות המקורית של FNV-1. קיימת גם גרסת 32 סיביות משופרת של FNV-1a: קישור
קריאה נוספת
אם נהניתם מהפוסט הזה, אולי תאהבו גם את ההצעות הבאות:
