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