Miklix

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

פורסם: 17 בפברואר 2025 בשעה 21:48:01 UTC
עודכן לאחרונה: 12 בינואר 2026 בשעה 13:27:46 UTC

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

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

Fowler-Noll-Vo FNV1a-64 Hash Code Calculator

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

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

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


חשב קוד Hash חדש

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

נתוני קלט:



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



אודות אלגוריתם ה-Hash של Fowler-Noll-Vo FNV-1a באורך 64 סיביות

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

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

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

הדרך שבה אלגוריתם FNV-1 עושה זאת היא תהליך רב-שלבי:

שלב 1: התחל עם בסיס (בסיס קיזוז)

חשבו על זה כמו לשפוך בסיס מיוחד לשייק לתוך הבלנדר שלכם. הבסיס הזה תמיד זהה, לא משנה אילו מרכיבים אתם מוסיפים. ב-FNV-1, זה נקרא "בסיס קיזוז" - פשוט מספר התחלתי מפואר.

שלב 2: הוספת רכיבים אחד אחד (עיבוד נתונים)

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

שלב 3: ערבוב עם מכפיל סודי (The FNV Prime)

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

שלב 4: הוספת קורטוב של קסם (פעולת XOR)

לפני הוספת המרכיב הבא, מפזרים מעט אבק קסמים (זוהי פעולת XOR). זה כמו להפוך את הטעם בדרכים בלתי צפויות, ולוודא שאפילו שינויים קטנים יעשו הבדל גדול.

שלב 5: חזור על הפעולה עד לסיום

אתה ממשיך לערבב ולפזר קסם אחרי כל מרכיב חדש עד שאתה מסיים לעבד הכל.

שלב 6: שייק סופי (ערך גיבוב)

כשמסיימים, שופכים את השייק. הטעם הסופי (ערך ה"האש") ייחודי לשילוב המדויק הזה של מרכיבים. אם הייתם מוסיפים אפילו אוכמניות אחת נוספת, הטעם היה שונה לחלוטין.

הגרסה המוצגת כאן היא גרסת 64 סיביות המשופרת של FNV-1a. אם אתם זקוקים לגרסה המקורית, יש לי גם מחשבון בשביל זה: קישור

קריאה נוספת

אם נהניתם מהפוסט הזה, אולי תאהבו גם את ההצעות הבאות:


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

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

על המחבר

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