DevToys Web Pro iconDevToys Web Proوبلاگ
به ما امتیاز دهید:
افزونه مرورگر را امتحان کنید:

مولد HMAC

ورودی

پیکربندی

  • الگوریتم

    الگوریتم هش HMAC را انتخاب کنید

  • قالب کلید

    کلید محرمانهٔ شما چگونه کدگذاری شده است

  • فرمت خروجی

    نحوهٔ نمایش HMAC تولیدشده

خروجی HMAC

  • جزئیات فنی

    مولد HMAC چگونه کار می‌کند

    این ابزار چه کاری انجام می‌دهد

    این مولد HMAC برای یک پیام با استفاده از یک کلید محرمانهٔ مشترک، هش کلیددار (امضای HMAC) ایجاد می‌کند. از HMAC SHA-1، HMAC SHA-256، HMAC SHA-384 و HMAC SHA-512 پشتیبانی می‌کند که معمولاً برای احراز هویت API، تأیید وب‌هوک و بررسی یکپارچگی پیام استفاده می‌شوند. می‌توانید نحوهٔ encoding کلید (متن، hex یا Base64) را انتخاب کنید و خروجی HMAC را به‌صورت hex یا Base64 دریافت کنید. همهٔ محاسبات به‌صورت محلی در مرورگر شما با استفاده از Web Crypto API انجام می‌شود، بنابراین راز شما هرگز دستگاهتان را ترک نمی‌کند.

    موارد استفادهٔ رایج برای توسعه‌دهندگان

    توسعه‌دهندگان از یک ماشین‌حساب HMAC آنلاین برای تأیید امضاهای وب‌هوک از سرویس‌هایی مانند Stripe، GitHub یا Slack، تولید امضاهای درخواست API و دیباگ گردش‌کارهای امضای JWT با HMAC استفاده می‌کنند. هنگام یکپارچه‌سازی APIهای شخص ثالث که به احراز هویت HMAC نیاز دارند، این ابزار کمک می‌کند امضای مورد انتظار را تأیید کرده و با خروجی سرور مقایسه کنید. همچنین به اعتبارسنجی هش‌های HMAC در زمان تست، ساخت نمونه‌های قابل تکرار و عیب‌یابی ناسازگاری‌های encoding بین کلاینت‌ها و سرورها کمک می‌کند.

    قالب‌ها، نوع‌ها یا گونه‌های داده

    ابزار HMAC از الگوریتم‌های SHA-1، SHA-256، SHA-384 و SHA-512 پشتیبانی می‌کند و خروجی را به‌صورت hex یا Base64 ارائه می‌دهد. کلیدهای محرمانه می‌توانند به‌صورت متن ساده (UTF-8)، هگزادسیمال یا بایت‌های کدگذاری‌شده با Base64 ارائه شوند. بسیاری از یکپارچه‌سازی‌ها امضاهای HMAC را به‌صورت hex منتشر می‌کنند، در حالی که برخی APIها Base64 را انتظار دارند؛ این مولد کمک می‌کند این قالب‌ها را با هم تطبیق دهید. برای جلوگیری از عدم تطابق امضاها، حتماً encoding درست کلید را انتخاب کنید.

    دام‌های رایج و حالت‌های لبه‌ای

    امضاهای HMAC نسبت به جزئیات ورودی بسیار حساس هستند. هر تفاوتی در encoding پیام، فاصله‌ها یا پایان خط‌ها نتیجه را تغییر می‌دهد. مطمئن شوید دقیقاً از payload یکسان و قالب درست کلید (متن در برابر hex در برابر Base64) استفاده می‌کنید. SHA-1 ضعیف‌تر در نظر گرفته می‌شود و فقط باید برای یکپارچه‌سازی‌های قدیمی و در صورت نیاز استفاده شود. اگر پلتفرم شما به‌جای Base64 از Base64URL استفاده می‌کند، ممکن است لازم باشد برای مقایسه خروجی را تبدیل کنید.

    چه زمانی از این ابزار استفاده کنیم در برابر کُد

    از این مولد HMAC برای بررسی‌های سریع، دیباگ تأیید وب‌هوک و اعتبارسنجی امضاهای نمونه در زمان توسعه استفاده کنید. برای سیستم‌های محیط تولید، امضاهای HMAC را در کد و با استفاده از کتابخانهٔ crypto پلتفرم خود تولید کنید تا encoding یکنواخت، مدیریت امن کلید و مقایسه‌های زمان‌ثابت (timing-safe) را تضمین کنید. این ابزار برای توسعه ایده‌آل است، اما برنامهٔ شما باید در محیط تولید HMACها را به‌صورت برنامه‌نویسی‌شده محاسبه کند.