ابزار رایگان · بدون ثبت‌نام

فقط در مرورگر شما؛ چیزی ارسال نمی‌شود

تولید هش MD5‏، SHA⁠-⁠1‏، SHA⁠-⁠256 و SHA⁠-⁠512

متن را بنویسید یا فایلی را انتخاب کنید تا هش MD5‏، SHA⁠-⁠1‏، SHA⁠-⁠256‏، SHA⁠-⁠384 و SHA⁠-⁠512 آن همزمان ساخته شود. متن فارسی با UTF-8 هش می‌شود و نتیجه با sha256sum لینوکس یکی است؛ checksum منتشرشده را هم بچسبانید تا مطابقت بررسی شود. فایل از دستگاه شما خارج نمی‌شود.

نوع ورودی
قالب خروجی

هر نویسه مهم است: فاصله، خط جدید و نیم‌فاصله هش را عوض می‌کنند. کلید Esc متن را پاک می‌کند.

فایل

هش منتشرشده یا خط خروجی sha256sum را بچسبانید؛ الگوریتم از روی طول خودکار پیدا می‌شود.

هش‌ها

در حال محاسبه…

  • MD5 ۱۲۸ بیت ناامن برای امنیت مطابق
    —
  • SHA-1 ۱۶۰ بیت ناامن برای امنیت مطابق
    —
  • SHA-256 ۲۵۶ بیت پیشنهادی مطابق
    —
  • SHA-384 ۳۸۴ بیت مطابق
    —
  • SHA-512 ۵۱۲ بیت مطابق
    —

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

راهنمای کامل

راهنمای کامل هش SHA برای توسعه‌دهندگان و مدیران سرور

هش در پشت صحنهٔ تقریباً همه‌چیز است: بررسی سالم بودن فایل دانلودشده، شناسهٔ کامیت‌های Git، شناسهٔ ایمیج‌های Docker، اثر انگشت کلید SSH و امضای گواهی‌های SSL. این راهنما توضیح می‌دهد تابع هش چیست، فرق SHA-1‏، SHA-256 و SHA-512 در عمل چیست، چرا خروجی این ابزار گاهی با sha256sum فرق دارد، چه وقت هش کافی نیست و برای رمز عبور چه باید کرد.

۱۰ بخش حدود ۸ دقیقه مطالعه

فهرست مطالب

هش چیست و چه ویژگی‌هایی دارد؟

تابع هش رمزنگاری، ورودی با هر طولی را به خروجی با طول ثابت تبدیل می‌کند؛ مثلاً SHA-256 همیشه ۲۵۶ بیت، یعنی ۶۴ نویسهٔ هگزادسیمال، تولید می‌کند، چه ورودی یک کلمه باشد چه یک فایل چندگیگابایتی. سه ویژگی آن را مفید می‌کند: ورودی یکسان همیشه هش یکسان می‌دهد؛ کوچک‌ترین تغییر در ورودی، هش را کاملاً عوض می‌کند؛ و از روی هش نمی‌شود ورودی را به دست آورد.

هش با رمزنگاری فرق دارد. رمزنگاری دوطرفه است و با کلید می‌شود داده را برگرداند، اما هش یک‌طرفه است و کلیدی ندارد. با Base64 هم فرق دارد که فقط شکل نمایش را عوض می‌کند و به‌راحتی برمی‌گردد. هش برای «اثبات یکسان بودن» ساخته شده است، نه برای پنهان کردن یا جابه‌جایی داده.

یک مثال ساده تفاوت را روشن می‌کند. اگر در ابزار کلمهٔ iranclaud را با iranclaud. مقایسه کنید، فقط یک نقطه اضافه شده اما هش SHA-256 دو متن هیچ شباهتی به هم ندارد. به این ویژگی «اثر بهمنی» می‌گویند و دلیل اصلی این است که هش برای تشخیص هر تغییر کوچک، حتی یک بیت خراب در فایل بکاپ، قابل‌اعتماد است.

کار با ابزار تولید هش آنلاین

متن را در کادر ورودی بنویسید یا بچسبانید؛ پنج هش MD5‏، SHA-1‏، SHA-256‏، SHA-384 و SHA-512 همان لحظه کنار آن ظاهر می‌شوند و کنار هر کدام دکمهٔ کپی هست. خروجی به‌طور پیش‌فرض هگزادسیمال با حروف کوچک است؛ همان قالبی که sha256sum و بیشتر صفحه‌های دانلود نمایش می‌دهند. با دکمه‌های بالای کادر می‌توانید حروف بزرگ یا Base64 خود بایت‌های هش را بگیرید. ابزار با کلمهٔ iranclaud شروع می‌شود تا شکل خروجی را ببینید.

در حالت «فایل»، فایلی تا ۵۱۲ مگابایت را انتخاب کنید یا روی کادر رها کنید. مرورگر فایل را فقط در حافظهٔ خودش می‌خواند و هیچ بایتی از آن آپلود نمی‌شود؛ نتیجه دقیقاً همان چیزی است که sha256sum یا md5sum روی همان فایل می‌دهد. در کادر «مقایسه با checksum» هم می‌توانید هش منتشرشده یا یک خط کامل از فایل SHA256SUMS را بچسبانید تا ابزار بگوید با کدام الگوریتم مطابقت دارد یا ندارد.

متن پیش از هش شدن با UTF-8 به بایت تبدیل می‌شود، بنابراین هش متن فارسی با هش همان متن در لینوکس یا برنامه‌های دیگری که UTF-8 استفاده می‌کنند یکسان است. هر نویسه اهمیت دارد: فاصلهٔ اضافه، خط جدید انتهایی یا تفاوت نیم‌فاصله و فاصله، هش کاملاً متفاوتی می‌سازد.

  • حالت متن یا فایل را انتخاب کنید و ورودی را بدهید.
  • الگوریتم موردنیاز را پیدا کنید؛ در بیشتر موارد SHA-256.
  • با دکمهٔ کپی، هش را بردارید.
  • برای مقایسه با هش دیگر، آن را در کادر مقایسه بچسبانید؛ ابزار کل رشته را مقایسه می‌کند، نه فقط چند نویسهٔ اول.

بازگشت به فهرست مطالب

SHA-1‏، SHA-256‏، SHA-384 یا SHA-512؛ کدام را انتخاب کنیم؟

هر چهار الگوریتم از خانوادهٔ SHA هستند، اما وضعیت امنیتی‌شان یکسان نیست. برای SHA-1 در عمل برخورد پیدا شده است، یعنی دو ورودی متفاوت با هش یکسان ساخته‌اند؛ بنابراین برای امضا، گواهی یا هر جایی که مهاجم ممکن است ورودی را دستکاری کند، نباید استفاده شود. SHA-1 فقط برای سازگاری با سیستم‌های قدیمی و شناسه‌های غیرامنیتی در این ابزار هست.

SHA-256 انتخاب پیش‌فرض امروز است: سریع، همه‌جا پشتیبانی‌شده و امن. SHA-384 و SHA-512 خروجی بلندتری دارند و روی پردازنده‌های ۶۴ بیتی گاهی حتی سریع‌ترند؛ SHA-384 در Subresource Integrity مرورگرها رایج است. MD5 سال‌هاست برای کاربردهای امنیتی شکسته شده و ساختن دو فایل متفاوت با MD5 یکسان روی یک لپ‌تاپ معمولی ممکن است. ابزار آن را فقط برای سازگاری با checksum‌های قدیمی، مثل فایل‌های md5sum برخی مخازن، محاسبه می‌کند و کنارش برچسب «ناامن برای امنیت» می‌گذارد.

الگوریتمطول خروجیوضعیتکاربرد مناسب
MD5۳۲ نویسهٔ هگزشکسته برای کاربرد امنیتیchecksum قدیمی، تشخیص خرابی تصادفی
SHA-1۴۰ نویسهٔ هگزشکسته برای کاربرد امنیتیسازگاری با سیستم‌های قدیمی
SHA-256۶۴ نویسهٔ هگزامنchecksum فایل، شناسه، امضا
SHA-384۹۶ نویسهٔ هگزامنSubresource Integrity، گواهی‌ها
SHA-512۱۲۸ نویسهٔ هگزامنوقتی خروجی بلندتر لازم است

بازگشت به فهرست مطالب

کاربردهای عملی هش در کار روزمرهٔ سرور

رایج‌ترین کاربرد، بررسی سالم بودن فایل دانلودشده است. توزیع‌های لینوکس کنار هر فایل ISO یک فایل SHA256SUMS منتشر می‌کنند؛ هش فایل دانلودشده را حساب کنید و با آن مقایسه کنید تا مطمئن شوید فایل ناقص یا دستکاری‌شده نیست. همین منطق برای بکاپ‌ها هم کاربرد دارد: پیش از انتقال فایل بکاپ به فضای ذخیره‌سازی S3 هش آن را ثبت کنید تا هنگام بازیابی بتوانید درستی‌اش را بسنجید.

در ابزارهای روزمره هم هش همه‌جا هست. شناسهٔ هر ایمیج در Docker یک digest از نوع sha256 است و کشیدن ایمیج با digest به‌جای برچسب، تضمین می‌کند دقیقاً همان نسخه اجرا شود. Git کامیت‌ها را با هش شناسایی می‌کند و اثر انگشت کلید SSH که هنگام اولین اتصال به سرور می‌بینید، هش SHA-256 کلید عمومی آن است.

  • بررسی checksum فایل ISO یا بستهٔ دانلودشده.
  • ثبت هش بکاپ برای سنجش درستی هنگام بازیابی.
  • digest ایمیج‌های Docker برای استقرار قابل‌تکرار.
  • مقایسهٔ سریع یکسان بودن دو فایل یا دو مقدار.
  • ساخت کلید کش یا نام فایل یکتا از روی محتوا.
  • Subresource Integrity برای فایل‌های جاوااسکریپت از CDN.

بازگشت به فهرست مطالب

دستورهای هش در لینوکس: sha256sum‏، openssl و بیشتر

روی هر سرور لینوکسی دستورهای md5sum‏، sha1sum‏، sha256sum و sha512sum از بستهٔ coreutils در دسترس‌اند و فایل را مستقیم هش می‌کنند؛ برای فایل‌های روی خود سرور و فایل‌های بزرگ‌تر از ۵۱۲ مگابایت همین دستورها راه درست‌اند. مهم‌ترین تله در مقایسه با این ابزار، خط جدید است: echo iranclaud | sha256sum هش متن به‌اضافهٔ یک خط جدید را می‌دهد و با خروجی ابزار نمی‌خواند. از echo -n یا printf استفاده کنید تا خروجی یکسان شود.

گزینهٔ -c در sha256sum فهرستی از هش‌ها را از فایل می‌خواند و همهٔ فایل‌ها را یکجا بررسی می‌کند. OpenSSL هم هش و HMAC را پشتیبانی می‌کند و برای ساخت مقدار Subresource Integrity لازم است، چون آن مقدار باید Base64 خود بایت‌های هش باشد، نه Base64 رشتهٔ هگز. اشتباه گرفتن این دو، خطای رایجی است که باعث می‌شود مرورگر اسکریپت را مسدود کند.

کاردستور
هش متن، هم‌خوان با این ابزارprintf "%s" "iranclaud" | sha256sum
هش یک فایلsha256sum ubuntu.iso
بررسی فایل‌ها با فهرست هشsha256sum -c SHA256SUMS --ignore-missing
هش با OpenSSLopenssl dgst -sha512 backup.tar.gz
HMAC با کلیدprintf "%s" "data" | openssl dgst -sha256 -hmac "KEY"
مقدار Subresource Integrityopenssl dgst -sha384 -binary app.js | openssl base64 -A

بازگشت به فهرست مطالب

هش در کش، CDN و استقرار وب‌سایت

ابزارهای ساخت فرانت‌اند مثل Vite و Webpack، چند نویسهٔ اول هش محتوای هر فایل را در نامش می‌گذارند؛ مثلاً app.3f2a1c.js. تا وقتی محتوا تغییر نکرده، نام فایل ثابت می‌ماند و مرورگر و CDN می‌توانند آن را برای مدت طولانی کش کنند. با هر تغییر، هش و در نتیجه نام فایل عوض می‌شود و نسخهٔ جدید بدون نیاز به پاک کردن کش به دست کاربر می‌رسد.

این روش با CDN ایران‌کلاد که فایل‌های ایستا را در لبهٔ داخل ایران کش می‌کند، به‌خوبی جور است: فایل‌های هش‌دار را با مدت کش طولانی سرو کنید و فقط فایل HTML را کوتاه‌مدت نگه دارید. هدر ETag که بسیاری از وب‌سرورها برمی‌گردانند هم شناسه‌ای برای نسخهٔ فایل است که مرورگر با آن می‌پرسد آیا نسخهٔ کش‌شده هنوز معتبر است یا نه.

بازگشت به فهرست مطالب

چرا هش SHA برای ذخیرهٔ رمز عبور کافی نیست؟

SHA-256 عمداً سریع طراحی شده است و همین سرعت برای رمز عبور نقطه‌ضعف است. یک کارت گرافیک معمولی در هر ثانیه میلیاردها هش SHA-256 می‌سازد؛ اگر پایگاه دادهٔ هش رمزها نشت کند، رمزهای ساده در چند دقیقه پیدا می‌شوند. جدول‌های از پیش ساخته‌شده هم برای رمزهای رایج آماده‌اند و هش بدون نمک را تقریباً فوراً برمی‌گردانند.

برای رمز عبور کاربران از الگوریتم‌های کند و نمک‌دار مثل Argon2id یا bcrypt استفاده کنید که در PHP با password_hash و در بیشتر زبان‌ها با کتابخانهٔ استاندارد در دسترس‌اند. همین هشدار برای داده‌های کوتاه و قابل‌حدس مثل کد ملی یا شمارهٔ موبایل هم صادق است: فضای حالت‌های ممکنشان آن‌قدر کوچک است که هش سادهٔ آن‌ها با امتحان همهٔ حالت‌ها برگشت‌پذیر است. برای ساختن رمز قوی هم تولید پسورد را امتحان کنید.

بازگشت به فهرست مطالب

هش، HMAC و امضای دیجیتال؛ هر کدام کجا به کار می‌آید؟

هش ساده فقط می‌گوید داده تغییر کرده یا نه، اما نمی‌گوید چه کسی آن را ساخته است. اگر مهاجم هم فایل و هم هش کنارش را عوض کند، مقایسه چیزی را آشکار نمی‌کند. برای همین فایل SHA256SUMS توزیع‌ها خودش با GPG امضا می‌شود و باید امضا را هم بررسی کرد.

HMAC هش را با یک کلید مخفی ترکیب می‌کند و برای تأیید پیام‌هایی به کار می‌رود که هر دو طرف کلید را دارند؛ امضای webhook‌ها و توکن‌های JWT با الگوریتم HS256 نمونه‌های رایج‌اند. محتوای توکن را با دیکودر JWT ببینید. امضای دیجیتال با کلید عمومی و خصوصی کار می‌کند و پایهٔ گواهی‌های SSL است که امروز با الگوریتم‌های خانوادهٔ SHA-2 مثل SHA-256 یا SHA-384 امضا می‌شوند. این ابزار HMAC و امضا نمی‌سازد و فقط هش ساده تولید می‌کند.

بازگشت به فهرست مطالب

حریم خصوصی: متن شما کجا هش می‌شود؟

هش‌های خانوادهٔ SHA با API رمزنگاری خود مرورگر، یعنی SubtleCrypto، و MD5 با جاوااسکریپت همین صفحه در دستگاه شما محاسبه می‌شوند. سرور ایران‌کلاد فقط صفحه را تحویل می‌دهد و متن ورودی، فایل انتخاب‌شده یا هش‌ها به هیچ سروری ارسال نمی‌شوند و جایی ذخیره نمی‌شوند؛ برخلاف برخی ابزارهای دیگر این سایت، حتی در آدرس صفحه هم چیزی نگه داشته نمی‌شود. اگر مرورگر شما SubtleCrypto را در اختیار نگذارد، که معمولاً در صفحه‌های غیر HTTPS یا مرورگرهای بسیار قدیمی رخ می‌دهد، ابزار پیام خطا نشان می‌دهد و فقط MD5 را می‌سازد.

با این حال، هش کردن یک رمز عبور واقعی در هر ابزار آنلاین ایدهٔ خوبی نیست؛ افزونه‌های مرورگر می‌توانند محتوای صفحه را ببینند. برای داده‌های حساس، دستور sha256sum روی سیستم یا سرور ابری خودتان امن‌ترین انتخاب است.

بازگشت به فهرست مطالب

محدودیت‌های این ابزار و جایگزین‌ها

فایل تا ۵۱۲ مگابایت پذیرفته می‌شود و کل آن در حافظهٔ مرورگر خوانده می‌شود؛ برای فایل بزرگ‌تر از sha256sum یا در ویندوز از دستور certutil -hashfile نام‌فایل SHA256 استفاده کنید. BLAKE2‏، SHA-3‏، HMAC و هش رمز عبور مثل bcrypt ساخته نمی‌شوند. خروجی Base64 ابزار، Base64 خود بایت‌های هش است؛ همان مقداری که Subresource Integrity بعد از پیشوند sha384- می‌خواهد. تبدیل رشتهٔ هگز با ابزار Base64 نتیجهٔ درستی نمی‌دهد، چون آن ابزار نویسه‌های هگز را کدگذاری می‌کند، نه بایت‌ها را.

برای مقایسهٔ دو فایل متنی و دیدن اینکه دقیقاً کجا با هم فرق دارند، هش فقط می‌گوید «متفاوت‌اند»؛ ابزار مقایسهٔ متن تفاوت‌ها را خط‌به‌خط نشان می‌دهد. و اگر هدف نهایی شما حفاظت از داده‌های سرور است، هش جای بکاپ منظم را نمی‌گیرد؛ هش فقط می‌گوید بکاپ سالم است یا نه.

بازگشت به فهرست مطالب بازگشت به ابتدای راهنما

پرسش و پاسخ،  ۱۲ پرسش

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

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

آیا متنی که هش می‌کنم به سرور ارسال می‌شود؟
خیر. هش با API رمزنگاری مرورگر در دستگاه شما محاسبه می‌شود و متن یا نتیجه به سرور ایران‌کلاد فرستاده یا ذخیره نمی‌شود.
چرا هش این ابزار با sha256sum در لینوکس فرق دارد؟
معمولاً به خاطر خط جدیدی است که echo به انتهای متن اضافه می‌کند. از echo -n یا printf استفاده کنید تا ورودی دقیقاً یکسان و هش هم یکسان شود.
آیا این ابزار MD5 هم می‌سازد؟ امن است؟
بله، MD5 هم کنار SHA‌ها محاسبه می‌شود، اما برای امنیت شکسته است: ساختن دو ورودی متفاوت با MD5 یکسان در عمل ممکن است. از آن فقط برای checksum‌های قدیمی و تشخیص خرابی تصادفی استفاده کنید و برای هر کار جدید SHA-256 را انتخاب کنید.
آیا SHA-1 هنوز امن است؟
برای امضا، گواهی و هر کاربرد امنیتی نه، چون برای آن برخورد عملی ساخته شده است. فقط برای سازگاری با سیستم‌های قدیمی و شناسه‌های غیرامنیتی از آن استفاده کنید.
آیا می‌شود هش را برگرداند و متن اصلی را پیدا کرد؟
از نظر ریاضی نه، اما اگر ورودی کوتاه یا قابل‌حدس باشد، مثل رمزهای رایج، کد ملی یا شمارهٔ موبایل، مهاجم می‌تواند همهٔ حالت‌ها را هش کند و مقایسه کند. برای چنین داده‌هایی هش ساده محافظت واقعی نیست.
برای ذخیرهٔ رمز عبور کاربران از SHA-256 استفاده کنم؟
خیر. از Argon2id یا bcrypt استفاده کنید که کند و نمک‌دارند؛ در PHP تابع password_hash همین کار را انجام می‌دهد.
آیا این ابزار فایل را هم هش می‌کند؟
بله. در حالت «فایل»، فایلی تا ۵۱۲ مگابایت را انتخاب کنید؛ فایل فقط در مرورگر خوانده می‌شود و آپلود نمی‌شود. برای فایل بزرگ‌تر از sha256sum در لینوکس، shasum -a 256 در macOS یا certutil -hashfile در ویندوز استفاده کنید.
متن فارسی چطور هش می‌شود؟
متن پیش از هش با UTF-8 به بایت تبدیل می‌شود، بنابراین نتیجه با هش همان متن در لینوکس و زبان‌های برنامه‌نویسی که UTF-8 استفاده می‌کنند یکسان است.
فرق هش و HMAC چیست؟
هش فقط از روی داده ساخته می‌شود و هر کسی می‌تواند آن را دوباره بسازد. HMAC یک کلید مخفی هم دارد و فقط کسی که کلید را دارد می‌تواند مقدار درست را بسازد؛ برای تأیید webhook‌ها و توکن‌ها به کار می‌رود. این ابزار HMAC نمی‌سازد.
چطور checksum یک فایل ISO دانلودشده را بررسی کنم؟
فایل SHA256SUMS را از سایت رسمی توزیع کنار ISO دانلود کنید و در همان پوشه دستور sha256sum -c SHA256SUMS --ignore-missing را اجرا کنید. پیام OK یعنی فایل سالم است. برای اطمینان کامل، امضای GPG فایل SHA256SUMS را هم بررسی کنید.
کدام الگوریتم را برای checksum بکاپ‌ها انتخاب کنم؟
SHA-256 کافی و همه‌جا در دسترس است. هش هر فایل بکاپ را هنگام ساخت در یک فایل متنی کنارش ثبت کنید و پیش از بازیابی دوباره حساب کنید؛ اگر یکسان بود، فایل در مسیر انتقال یا نگه‌داری خراب نشده است.
چرا ابزار پیام دسترسی نداشتن به SubtleCrypto نشان می‌دهد؟
مرورگرها این API را فقط در صفحه‌های امن HTTPS و در نسخه‌های جدید ارائه می‌کنند. در این حالت فقط MD5 ساخته می‌شود؛ مرورگر را به‌روز کنید و مطمئن شوید صفحه با HTTPS باز شده است.

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

سرور ابری

سرور ابری ایران‌کلاد در کمتر از ۶۰ ثانیه آماده می‌شود؛ با دیسک NVMe SSD، پورت اختصاصی ۱۰ گیگابیت و صورت‌حساب ساعتی تومانی، از ۱٬۱۰۰ تومان در ساعت.