ToolDeck

تولیدکننده هش SHA-256

تولید هش SHA-256 از هر متنی

متن ورودی

به‌صورت محلی اجرا می‌شود · جای‌گذاری اسرار امن است

هش SHA-256

هش SHA-256 اینجا نمایش داده می‌شود…

هش SHA-256 چیست؟

SHA-256 (الگوریتم هش امن ۲۵۶ بیتی) یک تابع هش رمزنگاری از خانواده SHA-2 است که NIST در سال ۲۰۰۱ به‌عنوان بخشی از FIPS 180-2 (به‌روزرسانی شده در FIPS 180-4) منتشر کرد. برای هر ورودی — یک کاراکتر تنها، یک فایل چند گیگابایتی، یا یک رشته خالی — SHA-256 یک خلاصه ثابت ۲۵۶ بیتی (۳۲ بایت) تولید می‌کند که معمولاً به‌صورت ۶۴ کاراکتر هگزادسیمال نمایش داده می‌شود. SHA-256 پرکاربردترین تابع هش در سیستم‌های تولیدی امروز است و زیربنای زنجیره‌های گواهی TLS، اثبات کار Bitcoin، یکپارچگی زیرمنبع (SRI)، و فرآیندهای امضای کد است.

SHA-256 یک تابع یک‌طرفه است: محاسبه هش از یک ورودی سریع است (صدها مگابایت در ثانیه روی سخت‌افزار مدرن)، اما معکوس‌سازی فرآیند — یافتن ورودی که یک هش مشخص تولید می‌کند — از نظر محاسباتی ناممکن است. این خاصیت که مقاومت پیش‌تصویر نامیده می‌شود، SHA-256 را برای هش رمز عبور (هنگامی که با salt و key-stretching ترکیب شود)، امضاهای دیجیتال، و تأیید یکپارچگی داده مناسب می‌کند. برخلاف MD5 و SHA-1، هیچ حمله تصادم یا پیش‌تصویری در برابر SHA-256 کامل نشان داده نشده است.

خانواده SHA-2 شامل شش نوع است: SHA-224، SHA-256، SHA-384، SHA-512، SHA-512/224، و SHA-512/256. SHA-256 روی کلمات ۳۲ بیتی با ۶۴ دور در هر بلوک کار می‌کند و برای پردازنده‌های ۳۲ بیتی بهینه شده است. SHA-512 از کلمات ۶۴ بیتی و ۸۰ دور استفاده می‌کند که می‌تواند روی پلتفرم‌های ۶۴ بیتی سریع‌تر باشد. برای اکثر کاربردها که یک خلاصه ۲۵۶ بیتی کافی است، SHA-256 توصیه پیش‌فرض NIST، IETF، و CA/Browser Forum باقی می‌ماند.

چرا از تولیدکننده SHA-256 آنلاین استفاده کنیم؟

تولید هش SHA-256 معمولاً به یک دستور ترمینال یا چند خط کد نیاز دارد. این ابزار مبتنی بر مرورگر به شما امکان می‌دهد بدون نصب هیچ چیز، تغییر محیط، یا نوشتن اسکریپت، خلاصه‌های SHA-256 محاسبه کنید.

هش‌گیری فوری در مرورگر
هر متنی را بچسبانید یا تایپ کنید و خلاصه SHA-256 را فوری دریافت کنید. Web Crypto API محاسبه را به‌صورت بومی انجام می‌دهد — بدون سربار کتابخانه JavaScript.
🔒
پردازش با اولویت حریم خصوصی
ورودی شما هرگز دستگاهتان را ترک نمی‌کند. تمام هش‌گیری به‌صورت محلی از طریق Web Crypto API داخلی مرورگر اجرا می‌شود. هیچ داده‌ای به هیچ سروری ارسال نمی‌شود.
📋
فرمت‌های خروجی آماده کپی
هش را با یک کلیک به‌صورت هگز حروف کوچک یا بزرگ دریافت کنید. هنگام تطابق چک‌سام از مدیران بسته، pipeline‌های CI، یا مستندات مفید است.
🔍
تأیید مقادیر مرجع
خلاصه‌های SHA-256 از صفحات دانلود، مانیفست‌های SBOM، یا گزارش‌های حسابرسی را بدون باز کردن ترمینال یا نوشتن کد موقت به سرعت تأیید کنید.

موارد استفاده SHA-256

توسعه‌دهنده فرانت‌اند — یکپارچگی زیرمنبع
هش SHA-256 یک اسکریپت یا stylesheet میزبانی شده روی CDN را محاسبه کنید تا ویژگی integrity را در تگ‌های script و link پر کنید، از دستکاری زنجیره تأمین محافظت کنید.
مهندس بک‌اند — امضای درخواست API
بسیاری از API‌ها (AWS Signature V4، Stripe webhook‌ها) به هش‌های SHA-256 از بار درخواست نیاز دارند. از این ابزار برای محاسبه هش‌های مرجع در طول توسعه و اشکال‌زدایی استفاده کنید.
DevOps — تأیید آرتیفکت
چک‌سام‌های SHA-256 فایل‌های باینری دانلود شده، تصاویر Docker پایه، یا افزونه‌های provider Terraform را قبل از استقرار در زیرساخت تولیدی تأیید کنید.
مهندس QA — اعتبارسنجی بردار آزمون
خروجی‌های SHA-256 را در برابر بردارهای آزمون NIST (مثال‌های FIPS 180-4) مقایسه کنید تا تأیید کنید که پیاده‌سازی هش‌گیری شما موارد مرزی را به‌درستی مدیریت می‌کند.
مهندس داده — اثرانگشت‌گذاری سطح ردیف
کلیدهای ترکیبی یا فیلدهای PII را با SHA-256 هش کنید تا اثرانگشت‌های قطعی و غیرقابل بازگشت برای حذف تکراری یا ناشناس‌سازی در pipeline‌های داده ایجاد کنید.
دانشجو — آموزش رمزنگاری
با SHA-256 آزمایش کنید تا اثر بهمنی را مشاهده کنید: یک کاراکتر در ورودی را تغییر دهید و ببینید چگونه کل خروجی ۶۴ کاراکتری به شکل غیرقابل پیش‌بینی تغییر می‌کند.

مقایسه انواع خانواده SHA-2

SHA-256 به خانواده SHA-2 تعریف شده در FIPS 180-4 تعلق دارد. هر نوع اندازه خلاصه، ویژگی‌های عملکردی، و حاشیه امنیتی را با یکدیگر معامله می‌کند. جدول زیر تمام انواع SHA-2 را که احتمالاً با آنها روبه‌رو می‌شوید مقایسه می‌کند.

نوعاندازه خلاصهطول Hexاندازه بایتبهترین کاربرد
SHA-256256 bits64 hex chars32 bytesTLS, blockchain, code signing, JWTs, SRI
SHA-224224 bits56 hex chars28 bytesTruncated SHA-256 — rare, specific compliance
SHA-384384 bits96 hex chars48 bytesGovernment / CNSS, higher collision margin
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC with large keys
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-256 در برابر SHA-1، MD5، و SHA-3

انتخاب الگوریتم هش مناسب به نیازهای امنیتی و محدودیت‌های سازگاری شما بستگی دارد. SHA-256 نقطه عملی بهینه را اشغال می‌کند: امن، پشتیبانی جهانی (شامل Web Crypto API)، و برای اکثر بارهای کاری به اندازه کافی سریع. جدول مقایسه زیر ویژگی‌هایی را که هنگام انتخاب تابع هش بیشترین اهمیت دارند پوشش می‌دهد.

ویژگیSHA-256SHA-1MD5SHA-3-256
Digest size256 bits (64 hex)160 bits (40 hex)128 bits (32 hex)256 bits (64 hex)
Security statusSecureBroken (2017)Broken (2004)Secure
Collision resistance2^128 operationsPractical attackPractical attack2^128 operations
Block size512 bits512 bits512 bits1600 bits (sponge)
Rounds64806424
StandardFIPS 180-4FIPS 180-4RFC 1321FIPS 202
Web Crypto APIYesYesNoNo
Primary use todayTLS, blockchain, SRILegacy git onlyNon-security checksumsBackup standard

نحوه کارکرد داخلی SHA-256

SHA-256 ورودی را در بلوک‌های ۵۱۲ بیتی (۶۴ بایت) از طریق ساختار Merkle–Damgård پردازش می‌کند. الگوریتم هشت کلمه وضعیت ۳۲ بیتی (H0–H7) را که از بخش‌های کسری ریشه‌های دوم هشت عدد اول اول مشتق شده‌اند مقداردهی اولیه می‌کند. هر بلوک از ۶۴ دور ترکیب عبور می‌کند که از عملیات بیتی (AND، XOR، NOT، چرخش راست، شیفت راست) و ۶۴ ثابت دور مشتق شده از ریشه‌های مکعبی ۶۴ عدد اول اول استفاده می‌کند.

Input: "hello world"
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
(256 bits = 32 bytes = 64 hex characters)
مرحلهتوضیح
PaddingAppend a 1-bit, then zeros until the message length is 448 mod 512. Append the original message length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
Message scheduleExpand each 16-word (32-bit) block into 64 words using sigma functions with right-rotate and right-shift operations.
CompressionProcess 64 rounds per block using Ch, Maj, and two Sigma functions with 64 round constants derived from cube roots of the first 64 primes.
OutputConcatenate the eight 32-bit state words (H0-H7) into a 256-bit (32-byte) digest, rendered as 64 hexadecimal characters.

اثر بهمنی تضمین می‌کند که تغییر یک بیت در ورودی تقریباً ۵۰٪ از بیت‌های خروجی را تغییر می‌دهد. این خاصیت، همراه با مقاومت تصادم 2^128، دلیل است که SHA-256 در سال ۲۰۲۶ توصیه پایه برای کاربردهای حساس به امنیت باقی می‌ماند.

مثال‌های کد SHA-256

SHA-256 به‌صورت بومی در هر زبان و runtime اصلی موجود است. Web Crypto API آن را بدون هیچ کتابخانه‌ای در مرورگرها فراهم می‌کند. مثال‌های زیر الگوهای استفاده واقعی شامل مدیریت ورودی Unicode و هش‌گیری فایل را نشان می‌دهند.

JavaScript (Web Crypto API)
// Works in all modern browsers and Node.js 18+
async function sha256(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-256', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha256('hello world')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha256').update('hello world').digest('hex')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
Python
import hashlib

# Basic SHA-256 hash
result = hashlib.sha256(b'hello world').hexdigest()
print(result)  # → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

# Hash a string (encode to bytes first)
text = 'café ☕'
hashlib.sha256(text.encode('utf-8')).hexdigest()
# → "3eb53e00aa1bb4b1e8aab1ab38e56e6b8fb0b20e1cf7e1d19f36e4fad2537445"

# Hash a file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
    sha = hashlib.sha256()
    for chunk in iter(lambda: f.read(8192), b''):
        sha.update(chunk)
    print(sha.hexdigest())
Go
package main

import (
    "crypto/sha256"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha256.Sum256(data)
    fmt.Printf("%x\n", hash)
    // → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
}
CLI (Linux / macOS)
# Using sha256sum (Linux) or shasum (macOS)
echo -n "hello world" | sha256sum
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# macOS
echo -n "hello world" | shasum -a 256
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# Verify a file checksum
echo "b94d27b...  myfile.bin" | sha256sum -c
# → myfile.bin: OK

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha256
# → SHA2-256(stdin)= b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

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

آیا SHA-256 هنوز امن است؟
بله. تا سال ۲۰۲۶، هیچ حمله تصادم، پیش‌تصویر، یا پیش‌تصویر دوم عملی در برابر SHA-256 کامل یافت نشده است. NIST، CA/Browser Forum، و IETF همچنان SHA-256 را برای گواهی‌های TLS، امضای کد، و امضاهای دیجیتال توصیه می‌کنند. مقاومت نظری تصادم 2^128 عملیات است که بسیار فراتر از محدودیت‌های محاسباتی فعلی است.
تفاوت بین SHA-256 و SHA-2 چیست؟
SHA-2 نام خانواده‌ای برای شش تابع هش است: SHA-224، SHA-256، SHA-384، SHA-512، SHA-512/224، و SHA-512/256. SHA-256 پرکاربردترین عضو است. وقتی مستندات می‌گویند «از SHA-2 استفاده کنید»، تقریباً همیشه به‌طور خاص SHA-256 را مگر اینکه یک خلاصه طولانی‌تر مورد نیاز باشد.
آیا SHA-256 قابل معکوس یا رمزگشایی است؟
خیر. SHA-256 یک تابع هش یک‌طرفه است، نه رمزنگاری. هیچ کلید و هیچ فرآیند رمزگشایی وجود ندارد. تنها راه یافتن ورودی اصلی حمله brute-force یا دیکشنری است که برای ورودی‌های به اندازه کافی پیچیده از نظر محاسباتی ناممکن است. برای ورودی‌های کوتاه یا قابل پیش‌بینی (مثل رمزهای عبور رایج)، جداول rainbow از پیش محاسبه شده وجود دارند، به همین دلیل هش رمز عبور باید همیشه از salt و یک KDF اختصاصی مثل bcrypt یا Argon2 استفاده کند.
SHA-256 در مقایسه با SHA-3 چگونه است؟
SHA-3 (Keccak، FIPS 202) از ساختار داخلی کاملاً متفاوتی (ساختار اسفنجی) نسبت به SHA-256 (Merkle–Damgård) استفاده می‌کند. هر دو SHA-256 و SHA-3-256 یک خلاصه ۲۵۶ بیتی تولید می‌کنند و مقاومت تصادم معادل دارند. SHA-3 به‌عنوان پشتیبان طراحی شد در صورتی که SHA-2 شکسته شود، اما SHA-2 همچنان شکسته نشده است. SHA-256 پشتیبانی runtime گسترده‌تری دارد — قابل توجه است که Web Crypto API از SHA-256 پشتیبانی می‌کند اما از SHA-3 نه.
آیا SHA-256 برای هش رمز عبور مناسب است؟
نه مستقیماً. هش SHA-256 خام یک رمز عبور در برابر حملات brute-force و rainbow table آسیب‌پذیر است چون SHA-256 برای سریع بودن طراحی شده است. برای ذخیره رمز عبور، از یک تابع استخراج کلید اختصاصی مثل bcrypt، scrypt، یا Argon2id استفاده کنید که salt و یک عامل کار قابل تنظیم برای کند کردن حملات اضافه می‌کنند.
چرا Bitcoin از SHA-256 دوگانه استفاده می‌کند؟
Bitcoin مقدار SHA-256(SHA-256(data)) را (به‌نام hash256) برای هدرهای بلوک و شناسه‌های تراکنش محاسبه می‌کند. کاربرد دوگانه در برابر حملات افزایش طول محافظت می‌کند، که در آن مهاجم داده‌ای را به پیامی ضمیمه می‌کند و یک هش معتبر بدون دانستن ورودی اصلی محاسبه می‌کند. این خاصیت هش‌های Merkle–Damgård است که SHA-256 تک‌گذر از آن جلوگیری نمی‌کند.
یکپارچگی زیرمنبع (SRI) چیست و SHA-256 چه ارتباطی با آن دارد؟
SRI یک مشخصه W3C است که به مرورگرها امکان می‌دهد تأیید کنند که یک منبع دریافت شده (اسکریپت، stylesheet) دستکاری نشده است. ویژگی integrity را که حاوی هش SHA-256 (یا SHA-384/SHA-512) رمزگذاری شده با Base64 از محتوای فایل مورد انتظار است اضافه می‌کنید. مرورگر هش فایل دانلود شده را محاسبه می‌کند و در صورت عدم تطابق هش‌ها از اجرای آن خودداری می‌کند. SHA-256 حداقل الگوریتم پشتیبانی شده توسط SRI است.