مولد HMAC (محاسبه HMAC-SHA256 در مرورگر)
ابزاری برای تولید امضای HMAC SHA256 در همین صفحه. کلیدها و ورودیهای شما هرگز ارسال یا ذخیره نمیشوند.
پشتیبانی از ورودیهای Text/Hex/Base64 و خروجیهای Hex/Base64. محاسبه ایمن با استفاده از Crypto API استاندارد مرورگر.
ورودی و خروجی
این صفحه محاسبات را کاملاً در مرورگر انجام داده و هیچ دادهای ارسال نمیکند.
* «توالی بایت» طبق مشخصات API مهم است. اگر کلید باینری است، لطفاً آن را به صورت Hex یا Base64 وارد کنید.
تنظیمات
اگر کدهای خط جدید به دلیل سیستمعامل یا کپی-پیست متفاوت باشند، نتایج تغییر خواهند کرد.
از آنجایی که امضاهای API بر اساس «تطبیق دقیق» هستند، حفظ حالت اصلی پیشنهاد میشود.
نحوه استفاده
۳ مرحله اصلی برای ایجاد امضای HMAC.
- 1 وارد کردن کلید (اگر مشخصات API باینری است، Hex یا Base64 را انتخاب کنید)
- 2 وارد کردن پیام (رشته مورد نظر برای امضا)
- 3 انتخاب فرمت خروجی (Hex / Base64) و کپی کردن
محاسبه HMAC بر روی «توالی بایتها» انجام میشود، نه «رشتههای متنی». حتی اگر ظاهر یکسان باشد، اگر کدگذاری کاراکتر، خطوط جدید یا فواصل اضافی متفاوت باشند، نتایج تغییر خواهند کرد (پیشفرض UTF-8).
نمونهها (بردارهای تست برای تأیید)
روی «بارگذاری نمونه» کلیک کنید تا فیلدها پر شوند.
اشتباهات رایج
اگر مدیریت خطوط جدید متفاوت باشد، نتایج تغییر میکنند.
از آنجایی که امضاها نیاز به تطبیق دقیق دارند، حذف فواصل ممکن است باعث عدم تطابق شود.
در این فرمت معمولاً + به - و / به _ تبدیل شده و علامت = حذف میشود.
مثال: وارد کردن 'deadbeef' به عنوان یک 'رشته متنی' در مقابل وارد کردن آن به عنوان 'توالی بایت 0xDE 0xAD...'.
اطلاعات تکمیلی
مکانیزمی برای ایجاد امضا از یک کلید مخفی و یک پیام. شخص ثالث بدون داشتن کلید نمیتواند نتیجه مشابه تولید کند.
الگوریتم SHA-256 یک «هش» است، اما HMAC یک «هش کلیددار (امضا)» است.
استفاده در امضاهای API، تأیید اعتبار Webhook، تشخیص دستکاری در درخواستها و غیره.
سؤالات متداول
آیا کلید ذخیره میشود؟
خیر. این ابزار در مرورگر محاسبه کرده و کلید یا پیام را به سرور نمیفرستد. (احتیاطاً در کامپیوترهای عمومی پس از استفاده دکمه بازنشانی را بزنید)
Base64 یا Hex؟
هر دو رایج هستند. میتوانید فرمت خروجی را انتخاب کنید. لطفاً طبق مستندات API خود عمل کنید.
کدگذاری کاراکترها؟
پیشفرض UTF-8 است. ورودی متنی برای محاسبه به بایتهای UTF-8 تبدیل میشود. برای دادههای باینری از ورودی Hex یا Base64 استفاده کنید.
خروجی مطابقت ندارد
دلایل رایج: ۱. مدیریت کلید (متن vs باینری)، ۲. خطوط جدید، ۳. فواصل اضافی، ۴. فرمت Base64URL. موارد بالا را به ترتیب بررسی کنید.
The output doesn't match
Common causes are (1) Key handling (Text vs Binary), (2) Newlines, (3) Whitespace, (4) Base64URL. Please check the pitfalls above in order.