Miklix

מחשבון קוד גיבוב Fowler-Noll-Vo FNV1a-32

פורסם: 18 בפברואר 2025 בשעה 0:12:32 UTC

מחשבון קוד Hash המשתמש בפונקציית Hash של Fowler-Noll-Vo 1a 32 סיביות (FNV1a-32) כדי לחשב קוד Hash על סמך קלט טקסט או העלאת קובץ.

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

Fowler-Noll-Vo FNV1a-32 Hash Code Calculator

פונקציית ה-hash 32-bit FNV-1a היא חלק ממשפחת פונקציות ה-hash של Fowler-Noll-Vo (FNV), המיועדת לגיבוב מהיר תוך שמירה על הפצה טובה של ערכי גיבוב. הוא משמש בדרך כלל ביישומים כמו טבלאות גיבוב, סיכומי בדיקה וחיפושי נתונים. הוא מייצר קוד hash של 32 סיביות (4 בתים), המיוצג לעתים קרובות כמספר הקסדצימלי בן 8 ספרות.

גרסת FNV-1a היא גרסה משופרת על פני פונקציית FNV-1 המקורית עם אבטחה טובה יותר.

גילוי נאות: לא כתבתי את היישום הספציפי של פונקציית ה-hash המשמשת בדף זה. זוהי פונקציה סטנדרטית הכלולה בשפת התכנות PHP. יצרתי את ממשק האינטרנט רק כדי להפוך אותו לזמין לציבור כאן מטעמי נוחות.


חשב קוד Hash חדש

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

נתוני קלט:



הטקסט שנשלח מקודד UTF-8. מכיוון שפונקציות hash פועלות על נתונים בינאריים, התוצאה תהיה שונה מאשר אם הטקסט היה בקידוד אחר. אם אתה צריך לחשב hash של טקסט בקידוד ספציפי, עליך להעלות קובץ במקום.



על Fowler-Noll-Vo FNV-1a 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-1a 32 סיביות. אם אתה צריך את הגרסה המקורית, יש לי גם מחשבון לזה: מחשבון קוד גיבוב Fowler-Noll-Vo FNV1-32

שתפו בבלוסקישתפו בפייסבוקשתפו בלינקדאיןשתפו ב-Tumblrשתפו ב-Xשתפו בלינקדאיןהצמד בפינטרסט

מיקל בנג כריסטנסן

על המחבר

מיקל בנג כריסטנסן
מיקל הוא היוצר והבעלים של miklix.com. יש לו למעלה מ-20 שנות ניסיון כמתכנת מחשבים/מפתח תוכנה מקצועי וכיום הוא מועסק במשרה מלאה בתאגיד IT אירופאי גדול. כשהוא לא כותב בלוג, הוא מבלה את זמנו הפנוי במגוון עצום של תחומי עניין, תחביבים ופעילויות, שעשויים לבוא לידי ביטוי במידה מסוימת במגוון הנושאים המכוסים באתר זה.