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