מחולל ומאמת HMAC
צור ואמת קודי אימות הודעות HMAC עם SHA-256, SHA-384, SHA-512 או SHA-1 באמצעות מפתח סודי, הכול בתוך הדפדפן שלך.
🔒 מעובד כולו בדפדפן שלך - שום דבר שתזין כאן לא יועלה לעולם.
תוצאה
HMAC (קוד אימות הודעות מבוסס גיבוב) הוא מבנה הצפנתי ממופתח המשלב מפתח סודי עם הודעה דרך פונקציית גיבוב כמו SHA-256. בניגוד לגיבוב רגיל, שכל אחד יכול לחשב מחדש מההודעה בלבד, HMAC ניתן לשחזור רק על ידי מי שמחזיק באותו מפתח סודי – זה מה שהופך אותו לקוד אימות ולא רק לסכום ביקורת.
זהו ההבדל המהותי מתמצית רגילה: כלי מחולל הגיבובים שלנו מחשב גיבובים לא ממופתחים כמו MD5 או SHA-256, שמצוינים לזיהוי השחתות מקריות אך אינם מוכיחים דבר על זהות יוצר הנתונים, שכן כל אחד יכול לייצר את אותו הגיבוב. HMAC מוכיח גם שלמות (ההודעה לא שונתה) וגם אותנטיות (החותם ידע את הסוד המשותף), ולכן HMAC הוא אבן הבניין הסטנדרטית מאחורי חתימת בקשות API, האלגוריתמים HS256/HS384/HS512 של JWT, ואימות רשומות TLS.
תרחיש השימוש הנפוץ ביותר בעולם האמיתי הוא אימות חתימות webhook. שירותים כמו Stripe, GitHub ו-Shopify חותמים על כל מטען webhook עם HMAC-SHA256 באמצעות סוד שאתה מגדיר, ושולחים את החתימה המתקבלת בכותרת בקשה. השרת שלך אמור לחשב מחדש את ה-HMAC על המטען הגולמי עם אותו סוד ולהשוות אותו מול ערך הכותרת – אם הם תואמים, אתה יודע שהבקשה באמת הגיעה מאותו שירות ולא שונתה בדרך. מצב האימות של הכלי הזה משחזר בדיוק את הבדיקה הזו: הדבק את המטען, הסוד המשותף והחתימה שהתקבלה, וקבל התאמה או אי-התאמה מיידית.
הכול רץ מקומית דרך Web Crypto API המקורי של הדפדפן (crypto.subtle.importKey ו-crypto.subtle.sign), כך שהמפתח הסודי, גוף ההודעה והחתימה המתקבלת לעולם אינם עוזבים את המחשב שלך – שום דבר לא מועלה לשום שרת, וזה חשוב מכיוון שסודות HMAC הם בדיוק מסוג הערכים שאסור להדביק בכלי מקוון אקראי שעלול לתעד אותם.