ToolDeck

هش

7 tools

ابزارهای هش ToolDeck به شما امکان می‌دهند مستقیماً در مرورگر خود هش‌های رمزنگاری تولید و شناسایی کنید. از MD5، SHA-1، SHA-256، SHA-384، SHA-512، و HMAC انتخاب کنید، یا از شناساگر هش برای تشخیص الگوریتم از هر رشته هش ناشناخته استفاده کنید. تمام محاسبات کاملاً در سمت کلاینت با استفاده از Web Crypto API اجرا می‌شوند. SHA-256 انتخاب استاندارد برای بررسی یکپارچگی فایل و تأیید عمومی است. SHA-512 و SHA-384 حاشیه امنیتی بالاتری برای داده‌های حساس و ویژگی‌های Subresource Integrity ارائه می‌دهند. HMAC هر الگوریتم هش را با یک راز مشترک ترکیب می‌کند و کدهای احراز هویت پیام را برای امضاهای API فعال می‌سازد. شناساگر هش بیش از ۲۵۰ فرمت هش را از یک بار جای‌گذاری تشخیص می‌دهد — تمام ابزارها کاملاً در مرورگر شما اجرا می‌شوند، بدون نصب، بدون ثبت‌نام، و بدون ارسال هیچ داده‌ای به هیچ سروری.

ابزارهای هش چیستند؟

توابع هش رمزنگاری تبدیل‌های ریاضی یک‌طرفه هستند که داده‌های ورودی با هر طولی را به یک خلاصه با اندازه ثابت تبدیل می‌کنند. ورودی یکسان همیشه خروجی یکسانی تولید می‌کند (قطعیت)، اما حتی تغییر یک بایت واحد خلاصه‌ای کاملاً متفاوت تولید می‌کند — خاصیتی که اثر بهمن نام دارد. توابع هش به گونه‌ای طراحی شده‌اند که بازیابی ورودی اصلی از خلاصه به تنهایی از نظر محاسباتی غیرممکن باشد.

ابزارهای هش در سراسر توسعه نرم‌افزار برای تأیید یکپارچگی داده، ذخیره رمز عبور، امضاهای دیجیتال و حذف تکراری محتوا استفاده می‌شوند. هنگامی که یک باینری دانلود می‌کنید، checksum SHA-256 تأیید می‌کند که در حین انتقال خراب نشده است. هنگامی که Git یک commit ذخیره می‌کند، از SHA-1 (در حال انتقال به SHA-256) برای شناسایی هر شیء بر اساس محتوا استفاده می‌کند. هنگامی که یک سرور رمزهای عبور را ذخیره می‌کند، از یک الگوریتم کند و memory-hard مانند bcrypt یا Argon2 — که از همین اولیه‌های هش مشتق شده — برای مقاومت در برابر حملات brute-force استفاده می‌کند.

الگوریتم‌های مختلف اندازه‌های خروجی و تضمین‌های امنیتی متفاوتی ارائه می‌دهند. MD5 و SHA-1 از نظر رمزنگاری برای اهداف امنیتی شکسته شده‌اند — حملات تصادم در عمل نشان داده شده‌اند — اما همچنان برای checksum و شناسه‌های غیرامنیتی به طور گسترده استفاده می‌شوند. SHA-256 و SHA-512 از خانواده SHA-2 که در NIST FIPS 180-4 استانداردسازی شده، معیارهای فعلی برای برنامه‌های کاربردی حساس امنیتی هستند. HMAC یک کلید مخفی به هر تابع هش اضافه می‌کند و احراز هویت پیام را فعال می‌کند که هم یکپارچگی و هم اصالت را اثبات می‌کند.

چرا از ابزارهای هش در ToolDeck استفاده کنیم؟

ابزارهای هش ToolDeck برای توسعه‌دهندگانی ساخته شده که به تولید هش سریع و دقیق بدون آپلود داده به یک سرویس خارجی نیاز دارند. تمام الگوریتم‌ها در مرورگر با استفاده از Web Crypto API یا JavaScript خالص اجرا می‌شوند — ورودی شما هرگز دستگاهتان را ترک نمی‌کند.

🔒
تولید هش با اولویت حریم خصوصی
داده‌های ورودی شما هرگز به هیچ سروری ارسال نمی‌شود. تمام عملیات هش‌سازی به صورت محلی در مرورگر شما اجرا می‌شود — اعتبارنامه‌ها، توکن‌ها یا رشته‌های حساس را بدون خطر افشا جای‌گذاری کنید.
🌐
دقت Web Crypto API
SHA-256، SHA-384 و SHA-512 از Web Crypto API بومی مرورگر استفاده می‌کنند — همان پیاده‌سازی مورد استفاده در TLS و رمزنگاری سطح سیستم‌عامل — نه یک پیاده‌سازی مجدد JavaScript که ممکن است با محیط تولید تفاوت داشته باشد.
هفت الگوریتم، یک رابط
MD5، SHA-1، SHA-256، SHA-384، SHA-512، HMAC و شناساگر هش همه از طریق یک رابط یکسان قابل دسترسی هستند — بدون جابجایی بین ابزارها یا سرویس‌ها.
🛡️
نتایج فوری، بدون محدودیت
تولید هش برای ورودی‌های معمول تقریباً آنی است. بدون محدودیت نرخ، بدون سهمیه، بدون نیاز به ورود — تمام ابزارها پس از بارگذاری صفحه به صورت آفلاین نیز کار می‌کنند.

موارد استفاده ابزارهای هش

هش‌های رمزنگاری در تمام چرخه توسعه نرم‌افزار ظاهر می‌شوند — از تأیید دانلودها تا امضای درخواست‌های API تا اشکال‌زدایی ساختار داخلی Git. اینجا رایج‌ترین سناریوهایی هستند که این ابزارها در آن‌ها وقت می‌برند.

امنیت API و امضاهای HMAC
امضاهای درخواست HMAC-SHA256 را هنگام اشکال‌زدایی یکپارچه‌سازی‌های webhook با Stripe، GitHub یا Shopify تأیید کنید. امضای مورد انتظار را به صورت محلی تولید کنید و آن را با هدر X-Hub-Signature-256 مقایسه کنید تا خرابی‌های احراز هویت را تشخیص دهید.
تأیید یکپارچگی فایل
checksum‌های SHA-256 برای باینری‌های دانلودشده، تصاویر Docker یا آرشیوهای پکیج محاسبه کنید. با checksum منتشرشده ناشر مقایسه کنید تا تأیید کنید فایل در حین انتقال خراب یا دستکاری نشده است.
اشکال‌زدایی هش رمز عبور
آزمایش کنید که خط لوله هش‌سازی برنامه شما خروجی صحیح را تولید می‌کند. خلاصه‌های SHA-256 یا MD5 از ورودی‌های شناخته‌شده تولید کنید تا منطق هش را قبل از نوشتن تست‌های یکپارچگی اعتبارسنجی کنید.
اشکال‌زدایی اشیاء Git
Git از SHA-1 (و به‌طور فزاینده SHA-256) برای شناسایی commit‌ها، درخت‌ها و blob‌ها بر اساس محتوا استفاده می‌کند. هش‌های SHA-1 از داده‌های شیء خام تولید کنید تا بفهمید ذخیره‌سازی قابل آدرس‌دهی محتوای Git چگونه شناسه‌های شیء را تخصیص می‌دهد.
Subresource Integrity (SRI)
هش‌های SHA-384 یا SHA-512 برای فایل‌های JavaScript و CSS میزبانی‌شده در CDN تولید کنید تا ویژگی integrity را در تگ‌های script و link پر کنید. این کار از تزریق کد مخرب توسط یک CDN در معرض خطر به صفحات شما جلوگیری می‌کند.
ممیزی امنیتی و پزشکی قانونی
رشته‌های هش ناشناخته از فایل‌های لاگ، dump‌های پایگاه داده یا ترافیک شبکه گرفته‌شده را با استفاده از ابزار شناساگر هش شناسایی کنید. تعیین کنید آیا یک رشته MD5، SHA-1، SHA-256 یا الگوریتم دیگری است از طول و مجموعه کاراکترهای آن.

مرجع الگوریتم هش

جدول زیر تمام الگوریتم‌های موجود در ToolDeck را پوشش می‌دهد. طول خروجی عامل اصلی تمایز است — شناساگر هش از این طول‌ها برای تشخیص نوع الگوریتم از رشته‌های هش ناشناخته استفاده می‌کند.

الگوریتمبیتطول Hexخانوادهوضعیتاستفاده اصلی
MD512832MDشکسته (تصادم)Checksum، کلیدهای کش، حذف تکراری غیرامنیتی
SHA-116040SHA-1منسوخ‌شدهGit (قدیمی)، checksum‌های قدیمی، زنجیره‌های گواهینامه
SHA-25625664SHA-2امنرمزهای عبور، TLS 1.3، Bitcoin، Subresource Integrity
SHA-38438496SHA-2امنگواهینامه‌های TLS، هش‌های Subresource Integrity
SHA-512512128SHA-2امنذخیره‌سازی با امنیت بالا، کلیدهای میزبان SSH
HMACمتغیرمتغیرMAC کلیددارامن (کلیددار)امضاهای API، تأیید webhook

شکسته = حملات تصادم در عمل نشان داده شده. منسوخ‌شده = برای کد جدید حساس امنیتی استفاده نکنید. امن = تا سال ۲۰۲۶ هیچ حمله عملی شناخته‌شده‌ای وجود ندارد.

چگونه ابزار هش مناسب را انتخاب کنیم

وظایف مختلف هش‌سازی به الگوریتم‌های متفاوتی نیاز دارند. از این راهنما برای تطبیق مورد استفاده خود با ابزار صحیح استفاده کنید.

  1. 1
    اگر نیاز دارید یک checksum فایل را تأیید کنید، داده‌های API را امضا کنید، یا با گواهینامه‌های TLS کار کنیدتولیدکننده SHA-256
  2. 2
    اگر نیاز دارید یک هش با حداکثر قدرت SHA-2 برای ذخیره‌سازی با امنیت بالا یا کلیدهای SSH تولید کنیدتولیدکننده SHA-512
  3. 3
    اگر نیاز دارید هش‌های Subresource Integrity (SRI) برای فایل‌های JavaScript یا CSS میزبانی‌شده در CDN تولید کنیدتولیدکننده SHA-384
  4. 4
    اگر نیاز دارید یک checksum MD5 قدیمی، کلید کش یا شناسه حذف تکراری غیرامنیتی بازتولید کنیدتولیدکننده MD5
  5. 5
    اگر نیاز دارید یک هش SHA-1 برای سازگاری با اشیاء Git یا یک پایگاه کد قدیمی محاسبه کنیدتولیدکننده SHA-1
  6. 6
    اگر نیاز دارید امضاهای webhook HMAC-SHA256 از Stripe، GitHub یا Shopify را تأیید کنیدتولیدکننده HMAC
  7. 7
    اگر نیاز دارید الگوریتم مورد استفاده برای تولید یک رشته هش ناشناخته را شناسایی کنیدشناساگر هش

هنگام ساخت سیستم‌های جدید، به طور پیش‌فرض از SHA-256 برای هش‌سازی عمومی و HMAC-SHA256 برای هش‌سازی پیام احراز هویت‌شده استفاده کنید. از MD5 و SHA-1 در هر زمینه حساس امنیتی خودداری کنید — تنها برای checksum‌های غیرامنیتی که سازگاری با سیستم‌های قدیمی الزامی است از آن‌ها استفاده کنید.

سؤالات متداول

تفاوت بین هش‌سازی و رمزنگاری چیست؟
هش‌سازی یک عملیات یک‌طرفه است: یک تابع هش ورودی دلخواه را به یک خلاصه با اندازه ثابت نگاشت می‌کند و نمی‌توان ورودی اصلی را از خلاصه بازیابی کرد. رمزنگاری دوطرفه است: داده‌های رمزشده با کلید صحیح قابل رمزگشایی هستند. توابع هش برای تأیید یکپارچگی و امضاهای دیجیتال استفاده می‌شوند. رمزنگاری برای محرمانگی داده استفاده می‌شود. هرگز از یک تابع هش به عنوان جایگزین رمزنگاری استفاده نکنید وقتی نیاز دارید داده اصلی را بازیابی کنید.
آیا MD5 ایمن است؟
MD5 از نظر رمزنگاری برای مقاومت در برابر تصادم شکسته شده است. محققان در سال ۲۰۰۴ نشان دادند که می‌توان دو ورودی متفاوت طراحی کرد که در ثانیه‌ها هش MD5 یکسانی تولید کنند. MD5 نباید برای امضاهای دیجیتال، گواهینامه‌های TLS یا هش‌سازی رمز عبور استفاده شود. برای موارد استفاده غیرامنیتی قابل قبول است — checksum فایل برای تشخیص خطا، کلیدهای کش و شناسه‌های حذف تکراری محتوا — جایی که مهاجم نمی‌تواند از تصادم بهره‌برداری کند.
HMAC چیست و چه زمانی باید از آن استفاده کنم؟
HMAC (کد احراز هویت پیام مبتنی بر هش) یک تابع هش رمزنگاری را با یک کلید مخفی ترکیب می‌کند. هم اثبات می‌کند که پیام دستکاری نشده (یکپارچگی) و هم اثبات می‌کند که از کسی آمده که کلید را می‌داند (اصالت). از HMAC هنگام تأیید payload‌های webhook از Stripe یا GitHub، امضای درخواست‌های AWS API (Signature Version 4)، یا احراز هویت پیام‌ها بین سرویس‌ها استفاده کنید. HMAC-SHA256 انتخاب توصیه‌شده برای سیستم‌های جدید است.
چرا ورودی یکسان همیشه هش یکسانی تولید می‌کند؟
توابع هش تبدیل‌های ریاضی قطعی هستند: یک ورودی مشخص از طریق یک الگوریتم ثابت دقیقاً به یک خروجی نگاشت می‌شود. این خاصیت هش‌ها را برای تأیید مفید می‌کند — اگر امروز یک فایل را هش کنید و فردا دوباره هش کنید و همان خلاصه را بگیرید، فایل تغییر نکرده است. خلاصه به عنوان یک اثر انگشت با اندازه ثابت از داده‌های ورودی عمل می‌کند، صرف‌نظر از اندازه اصلی ورودی.
تصادم هش چیست؟
تصادم زمانی اتفاق می‌افتد که دو ورودی متفاوت خروجی هش یکسانی تولید کنند. تصادم‌ها باید از نظر نظری وجود داشته باشند زیرا توابع هش ورودی‌های نامحدود را به خروجی‌های محدود نگاشت می‌کنند (اصل کبوترخانه). یک تابع هش امن یافتن تصادم‌ها را از نظر محاسباتی غیرممکن می‌کند — با سخت‌افزار فعلی عملاً غیرممکن. MD5 و SHA-1 شکسته تلقی می‌شوند زیرا حملات تصادم عملی نشان داده شده: Wang و همکاران MD5 را در سال ۲۰۰۴ شکستند و حمله SHAttered در سال ۲۰۱۷ SHA-1 را شکست.
آیا می‌توانم رمزهای عبور را با SHA-256 یا SHA-512 هش کنم؟
خیر. توابع هش عمومی مانند SHA-256 و SHA-512 برای سرعت طراحی شده‌اند — یک مهاجم با GPU می‌تواند میلیاردها عملیات در ثانیه محاسبه کند که حملات brute-force و دیکشنری را عملی می‌کند. برای ذخیره‌سازی رمز عبور، از یک الگوریتم هدفمند استفاده کنید: bcrypt، scrypt یا Argon2id. اینها به طور عمدی کند و memory-hard هستند و به طور خاص برای مقاومت در برابر حملات brute-force در مقیاس طراحی شده‌اند. هرگز رمزهای عبور را به عنوان هش‌های ساده MD5 یا SHA ذخیره نکنید.
عدد در SHA-256 یا SHA-512 به چه معناست؟
عدد به اندازه خروجی در بیت اشاره دارد. SHA-256 یک خلاصه ۲۵۶ بیتی تولید می‌کند که به صورت ۶۴ کاراکتر هگزادسیمال نمایش داده می‌شود (۴ بیت در هر رقم hex: ۲۵۶ ÷ ۴ = ۶۴). SHA-512 یک خلاصه ۵۱۲ بیتی تولید می‌کند (۱۲۸ کاراکتر hex). اندازه خروجی بزرگ‌تر به معنای تعداد بسیار بیشتری از مقادیر هش ممکن است — هر بیت اضافی فضا را دو برابر می‌کند — که تصادم‌های تصادفی و حملات preimage با brute-force را به طور نمایی سخت‌تر می‌کند.
چگونه یک هش رمزنگاری با یک checksum ساده تفاوت دارد؟
یک checksum مانند CRC32 برای تشخیص خطا بهینه شده — سریع و ساده است اما هیچ محافظتی در برابر دستکاری عمدی ندارد. یک مهاجم می‌تواند یک فایل اصلاح‌شده با همان CRC32 طراحی کند. یک هش رمزنگاری مانند SHA-256 مقاوم در برابر تصادم و مقاوم در برابر preimage است: یافتن دو ورودی با هش یکسان، یا یافتن ورودی‌ای که به یک هدف مشخص هش شود، محاسبه غیرممکنی را می‌طلبد. برای تأیید دانلود جایی که دستکاری نگرانی است، همیشه از یک هش رمزنگاری استفاده کنید، نه یک checksum ساده.