بدون ارسال داده

مولد HMAC (محاسبه HMAC-SHA256 در مرورگر)

ابزاری برای تولید امضای HMAC SHA256 در همین صفحه. کلیدها و ورودی‌های شما هرگز ارسال یا ذخیره نمی‌شوند.

پشتیبانی از ورودی‌های Text/Hex/Base64 و خروجی‌های Hex/Base64. محاسبه ایمن با استفاده از Crypto API استاندارد مرورگر.

محاسبه محلی بدون ذخیره‌سازی پشتیبانی از Hex/Base64

ورودی و خروجی

این صفحه محاسبات را کاملاً در مرورگر انجام داده و هیچ داده‌ای ارسال نمی‌کند.

بدون ارسال داده
فرمت ورودی

* «توالی بایت» طبق مشخصات API مهم است. اگر کلید باینری است، لطفاً آن را به صورت Hex یا Base64 وارد کنید.

فرمت ورودی
طول خروجی: ۳۲ بایت (SHA-256)
تنظیمات

اگر کدهای خط جدید به دلیل سیستم‌عامل یا کپی-پیست متفاوت باشند، نتایج تغییر خواهند کرد.

از آنجایی که امضاهای API بر اساس «تطبیق دقیق» هستند، حفظ حالت اصلی پیشنهاد می‌شود.

نحوه استفاده

۳ مرحله اصلی برای ایجاد امضای HMAC.

  1. 1 وارد کردن کلید (اگر مشخصات API باینری است، Hex یا Base64 را انتخاب کنید)
  2. 2 وارد کردن پیام (رشته مورد نظر برای امضا)
  3. 3 انتخاب فرمت خروجی (Hex / Base64) و کپی کردن

محاسبه HMAC بر روی «توالی بایت‌ها» انجام می‌شود، نه «رشته‌های متنی». حتی اگر ظاهر یکسان باشد، اگر کدگذاری کاراکتر، خطوط جدید یا فواصل اضافی متفاوت باشند، نتایج تغییر خواهند کرد (پیش‌فرض UTF-8).

نمونه‌ها (بردارهای تست برای تأیید)

روی «بارگذاری نمونه» کلیک کنید تا فیلدها پر شوند.

نمونه ۱
کلید (Text/UTF-8)
secret
پیام (Text/UTF-8)
message
HMAC-SHA256 (Hex)
8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b
HMAC-SHA256 (Base64)
i19IcCmVwVmMVz2x4hhmqbgl1KeU0WnXBgoDYFeWNgs=
نمونه ۲
کلید (Text/UTF-8)
key
پیام (Text/UTF-8)
The quick brown fox jumps over the lazy dog
HMAC-SHA256 (Hex)
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
HMAC-SHA256 (Base64)
97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=

اشتباهات رایج

تفاوت کدهای خط جدید (LF/CRLF)

اگر مدیریت خطوط جدید متفاوت باشد، نتایج تغییر می‌کنند.

حذف فواصل (Trimming)

از آنجایی که امضاها نیاز به تطبیق دقیق دارند، حذف فواصل ممکن است باعث عدم تطابق شود.

علائم Base64URL

در این فرمت معمولاً + به - و / به _ تبدیل شده و علامت = حذف می‌شود.

مدیریت کلید (متن در مقابل باینری)

مثال: وارد کردن 'deadbeef' به عنوان یک 'رشته متنی' در مقابل وارد کردن آن به عنوان 'توالی بایت 0xDE 0xAD...'.

اطلاعات تکمیلی

HMAC چیست؟

مکانیزمی برای ایجاد امضا از یک کلید مخفی و یک پیام. شخص ثالث بدون داشتن کلید نمی‌تواند نتیجه مشابه تولید کند.

تفاوت با SHA-256

الگوریتم 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.