Генератор хешей/ MD5 · SHA
Вычисляйте хеши MD5, SHA-1, SHA-256, SHA-512 в реальном времени с помощью встроенного Web Crypto API браузера.
Этот инструмент решил вашу проблему?
Что такое хеш-алгоритм
Хеш-алгоритм — это односторонняя функция, преобразующая входные данные任意长度 в выходные данные фиксированной длины.常见的 хеш-алгоритмы: 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.
Примеры кода
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..."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())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)# 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