Как пользоваться
- Введите текст или hex-байты либо откройте файл, чтобы вычислить хеш его содержимого.
- В параметре «Формат вывода» выберите hex для контрольных сумм в стиле sha512sum или «Base64» для строк целостности.
- Чтобы проверить значение, вставьте ожидаемый хеш в поле «Сравнить с»; принимается и hex, и Base64.
- Нужен SHA-384? Выберите его в параметре «Алгоритм» или скопируйте из таблицы «Все алгоритмы».
Что такое SHA-512?
SHA-512 — функция семейства SHA-2 с самым длинным результатом, описанная в FIPS 180-4 и RFC 6234. Если SHA-256 работает с 32-битными словами, то SHA-512 использует 64-битные слова, блоки по 1024 бита и 80 раундов и выдаёт 512-битный хеш: 128 шестнадцатеричных символов или 88 символов Base64. Его стойкость к коллизиям, около 256 бит, с огромным запасом превосходит любую атаку, какую можно представить в обозримом будущем, и, как любой хеш, он работает только в одну сторону: исходные данные нельзя восстановить по хешу.
Поскольку SHA-512 использует 64-битную арифметику, на 64-битных процессорах без специальных инструкций для SHA-256 он часто обрабатывает каждый байт быстрее, чем SHA-256. На процессорах с такими инструкциями быстрее обычно оказывается SHA-256.
SHA-384, SHA-512/256 и другие усечённые варианты
Несколько стандартных хеш-функций — это SHA-512 с другими начальными значениями, результат которого обрезан до меньшей длины:
| Название | Результат | Длина в hex | Типичное применение |
|---|---|---|---|
| SHA-384 | 384 бита | 96 | Наборы шифров TLS 1.3, Subresource Integrity |
| SHA-512/256 | 256 бит | 64 | Результат размера SHA-256 со скоростью SHA-512 |
| SHA-512/224 | 224 бита | 56 | Используется редко |
Поскольку начальные значения отличаются, SHA-512/256 — это не первые 64 hex-символа SHA-512. Кроме того, усечённые варианты устойчивы к атаке удлинением сообщения, которой подвержены полные SHA-256 и SHA-512. Эта страница вычисляет SHA-384 и SHA-512; для SHA-512/256 воспользуйтесь другим инструментом, например openssl dgst -sha512-256.
Строки целостности в Base64 и хеши паролей
Hex-запись SHA-512 очень длинная, поэтому машиночитаемые форматы часто передают его в Base64. Subresource Integrity принимает sha256-, sha384- и sha512-, за которыми следует хеш в Base64, а package-lock.json в npm хранит для каждого пакета значение integrity, обычно начинающееся с sha512-. Откройте файл, выберите формат вывода «Base64» и добавьте префикс.
Хеши паролей Linux, начинающиеся с $6$, — это sha512crypt: SHA-512 с солью, повторённый тысячи раз, поэтому они никогда не совпадают с простым SHA-512 пароля. Однократный SHA-512 пароля быстро подбирается перебором, каким бы длинным ни был хеш; храните пароли с помощью Argon2id, scrypt, bcrypt или PBKDF2-HMAC-SHA512.
SHA-512 в командной строке и в коде
sha512sum file.tar.gz # Linux
shasum -a 512 file.tar.gz # macOS
certutil -hashfile file.tar.gz SHA512 # Windows
Get-FileHash file.tar.gz -Algorithm SHA512 # PowerShell
# Хеш в Base64 для атрибута integrity
openssl dgst -sha512 -binary file.js | openssl base64 -A
# Python
hashlib.sha512(data).hexdigest()
// Node.js
crypto.createHash('sha512').update(data).digest('base64')
На этой странице SHA-512 вычисляется с помощью Web Crypto API в вашем браузере, а таблица «Все алгоритмы» показывает значения SHA-384, SHA-256, SHA-1, MD5 и CRC для тех же входных данных.
Примеры
| Исходные данные (UTF-8) | SHA-512 |
|---|---|
Hello, World! | 374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387 |
Base64.is | 44960f483bc929874301e2fb54f4337c84641ad12cb6b2639875e26e490664e65da046cf43eafb2ab4a47b5d3eb66637630af5cba841974bfaa4e372dd0453d2 |
你好 | 5232181bc0d9888f5c9746e410b4740eb461706ba5dacfbc93587cecfc8d068bac7737e92870d6745b11a25e9cd78b55f4ffc706f73cfcae5345f1b53fb8f6b5 |
Часто задаваемые вопросы
Надёжнее ли SHA-512, чем SHA-256?
У него больший запас стойкости: стойкость к коллизиям около 256 бит против 128 бит у SHA-256. Но оба алгоритма не взломаны, а полный перебор для них далеко за пределами практических возможностей. Выбирайте SHA-512, если этого требует формат, если он быстрее на вашем оборудовании или если нужен более длинный хеш; в остальных случаях достаточно SHA-256.
Можно ли расшифровать хеш SHA-512?
Нет. Хеш SHA-512 всегда занимает 64 байта, будь на входе одно слово или целый образ диска, поэтому каждому хешу соответствует бесчисленное множество разных входных данных, и декодировать здесь нечего. Хеш можно только сравнить с хешем предполагаемого значения; так сайты поиска по хешам находят распространённые слова и пароли, но непредсказуемые данные — никогда.
Какой длины хеш SHA-512?
== на конце. Такую же длину имеют SHA3-512, BLAKE2b и Whirlpool, поэтому вставьте неизвестный хеш в определитель типа хеша, чтобы узнать, какие из них подходят.SHA-512 и SHA3-512 — одно и то же?
Нет. SHA3-512 (FIPS 202) основан на Keccak — совершенно другой конструкции — и даёт для тех же данных другой хеш. Эта страница не вычисляет SHA-3.
Почему две строки, которые выглядят одинаково, дают разные хеши?
Хеш вычисляется от байтов. Символ вроде é можно сохранить как одну кодовую точку или как e плюс комбинируемый диакритический знак, а пробелы в конце, окончания строк (LF или CRLF) и кодировка (UTF-8, UTF-16, Windows-1252) тоже меняют байты. Выберите в параметре «Кодировка текста» ту кодировку, которую использовала другая система, или вставьте точные байты в hex.