Генератор хешей/ MD5 · SHA

Вычисляйте хеши MD5, SHA-1, SHA-256, SHA-512 в реальном времени с помощью встроенного Web Crypto API браузера.

Введите текст
MD5
SHA-1
SHA-256
SHA-512

Этот инструмент решил вашу проблему?

Что такое хеш-алгоритм

Хеш-алгоритм — это односторонняя функция, преобразующая входные данные任意长度 в выходные данные фиксированной длины.常见的 хеш-алгоритмы: MD5 (128 бит), SHA-1 (160 бит), SHA-256 (256 бит) и SHA-512 (512 бит). Хеши детерминированы (одинаковый вход всегда даёт одинаковый выход), односторонни (невозможно восстановить исходные данные из хеша) и обладают эффектом лавины (небольшие изменения входа вызывают большие изменения выхода).

Типичные применения хеширования

Хранение паролей: системы保存 не пароли в открытом виде, а их хеш-значения (обычно с солью). Проверка целостности файлов: сравнение SHA-256 хешей после скачивания для подтверждения неизменности файлов. Цифровые подписи: подпись хешей документов для проверки источника и целостности. Дедупликация: использование хешей для быстрого определения идентичности данных. Блокчейн: Bitcoin использует двойное SHA-256 хеширование для обеспечения不可изменности транзакций.

Безопасен ли ещё MD5

MD5 имеет известные уязвимости коллизий (разные входные данные могут产生 одинаковый хеш), что делает его неприменимым в安全敏感ных сценариях, таких как хранение паролей или цифровые подписи. Однако в несвязанных с безопасностью сценариях MD5 всё ещё广泛 используется, например для контрольных сумм файлов и генерации ключей кэша. Для安全关键ных сценариев рекомендуется SHA-256 или выше. Наш инструмент поддерживает MD5, SHA-1, SHA-256 и SHA-512.

Примеры кода

JavaScript (Web Crypto API)
async function sha256(text) {
  const data = new TextEncoder().encode(text);
  const hash = await crypto.subtle.digest(
    "SHA-256", data
  );
  return Array.from(new Uint8Array(hash))
    .map(b => b.toString(16).padStart(2, "0"))
    .join("");
}

await sha256("hello");
// "2cf24dba5fb0a30e26e83b2ac5b9e29e..."
Python (hashlib)
import hashlib

text = "hello".encode("utf-8")

print(hashlib.md5(text).hexdigest())
print(hashlib.sha1(text).hexdigest())
print(hashlib.sha256(text).hexdigest())
print(hashlib.sha512(text).hexdigest())

# File hash
with open("file.txt", "rb") as f:
    print(hashlib.sha256(f.read()).hexdigest())
Go (crypto)
import (
  "crypto/md5"
  "crypto/sha256"
  "fmt"
)

data := []byte("hello")

md5Hash := md5.Sum(data)
sha256Hash := sha256.Sum256(data)

fmt.Printf("%x\n", md5Hash)
fmt.Printf("%x\n", sha256Hash)
Shell
# Linux
echo -n "hello" | md5sum
echo -n "hello" | sha256sum
echo -n "hello" | sha512sum

# macOS
echo -n "hello" | md5
echo -n "hello" | shasum -a 256

# File
sha256sum myfile.zip
shasum -a 256 myfile.zip

Часто задаваемые вопросы

Что такое хеш-функция?
Хеш-функция преобразует входные данные произвольной длины в выходные данные фиксированной длины (дайджест). Один и тот же вход всегда дает один и тот же хеш; разные входы почти никогда не дают одинаковый результат (устойчивость к коллизиям); и входные данные невозможно восстановить из хеша (однонаправленность).
MD5 все еще безопасен?
MD5 больше не безопасен для паролей и цифровых подписей — существуют известные атаки на основе коллизий. Он по-прежнему широко используется для проверки целостности файлов и контрольных сумм. Для паролей в продакшене используйте bcrypt или Argon2.
В чем разница между SHA-256 и SHA-512?
Оба принадлежат к семейству SHA-2 и обладают достаточной безопасностью. SHA-256 создает дайджест размером 32 байта (256 бит); SHA-512 — 64 байта (512 бит). SHA-512 быстрее на 64-битных процессорах; SHA-256 быстрее на 32-битных системах. Bitcoin использует SHA-256; Git использует SHA-1 (переходит на SHA-256).
Одинаковый хеш означает одинаковое содержимое?
На практике — да. Коллизии хешей (два разных входа дают одинаковый хеш) вычислительно невозможны для SHA-256 и SHA-512. Проверка SHA-256 файла после загрузки подтверждает, что он не был изменен или поврежден.
Как вычислить хеши в терминале?
Linux: md5sum file.txt / sha256sum file.txt / sha512sum file.txt. macOS: md5 file.txt / shasum -a 256 file.txt / shasum -a 512 file.txt. Windows PowerShell: Get-FileHash file.txt -Algorithm SHA256.
Мои данные в безопасности?
Да. Этот инструмент работает полностью в вашем браузере — MD5 реализован на чистом JavaScript, а SHA-хеши используют встроенный Web Crypto API браузера. Никакие данные не отправляются на сервер.