UTILITIES NEWBIE

Хеши, HMAC и bcrypt: объяснение

У хеша нет ключа, HMAC использует секретный ключ для аутентификации сообщения, bcrypt — хеширование паролей с солью. Ни одна операция не является шифрованием.

Отличайте хеш от аутентификации

SHA-256 и SHA-512 дают хеш фиксированного размера от точных байтов ввода. Хеш из недоверенного канала не устанавливает автора файла. HMAC-SHA-256 и HMAC-SHA-512 объединяют сообщение с секретным ключом; любой знающий ключ может создать корректный тег. Храните ключи в секрете и проверяйте теги подходящей процедурой постоянного времени.

MD5 — только для устаревших задач

MD5 имеет практически используемые коллизионные слабости. Он сохранён для совместимости со старыми форматами, а не для подписей, защищённых проверок целостности или хранения паролей. Быстрые хеши SHA-256 и SHA-512 сами по себе тоже не подходят для хранения паролей. Кодирование Base64 или hex не делает значение секретным.

Разберитесь в ограничениях bcrypt

bcrypt создаёт хеш с солью и предоставляет отдельную проверку. Прототип запускает его после явного действия в ограниченном Worker, создаёт хеши со стоимостью 10–12 и отклоняет ввод более 72 байт UTF-8, а не молча усекает его. Проверка принимает ограниченный диапазон прежних стоимостей; это не рекомендация таких параметров для новых баз.

Рабочая область на этом сайте

Прототип хеширует точный текст UTF-8 без нормализации. Переносы строк, пробелы и разные представления Unicode могут менять результат. Бинарные файлы не хешируются. Эта рабочая область имеет общий origin браузера utilitiesnewbie.com с публичными страницами, которые могут загружать рекламные скрипты. Другой путь и ограничительная политика документа не создают границу отдельного origin. Код приложения не загружает ввод на сервер и не сохраняет его автоматически. Копирование и скачивание — явные действия, создающие данные вне рабочей области. Хостинг может добавлять платформенные скрипты, а устройства и расширения могут получать доступ к данным. Используйте тестовые значения; никогда не вводите действующий пароль учётной записи или конфиденциальные файлы. В этом руководстве нет полей для секретов и функции детерминированного получения паролей из мастер-пароля.

Пример: публичный вектор SHA-256

Буквальный текст abc имеет байты UTF-8 61 62 63 в шестнадцатеричном виде. Без перевода строки и внешних кавычек SHA-256 даёт показанные 64 hex-символа. Перевод строки меняет байты и хеш. Этот публичный тест проверяет воспроизводимость, а не личность отправителя.

Ожидаемый результат: SHA-256 текста abc без перевода строки:

ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

Пример: считайте байты, а не видимые символы

Предварительно составленный символ é (U+00E9) занимает два байта UTF-8. При повторении 36 раз получается 36 × 2 = 72 байт — в пределах bcrypt прототипа. При повторении 37 раз получится 74 байта, что должно отклоняться. Визуально похожая последовательность e + U+0301 занимает три байта; прототип не выполняет нормализацию. Эти повторяемые публичные строки — тестовые данные, а не предлагаемые пароли.

Ожидаемый результат: 36 × 2 = 72 байт: проверка длины пройдена; 37 × 2 = 74 байт: отклоняется.

Открыть рабочую область

Открывается на английском. Ввод и файлы из инструмента не передаются. https://utilitiesnewbie.com/workspace/private/

Открыть рабочую область

Инструменты не отменяют ваши законные права и наши обязанности. Неприкосновенность от ответственности или гарантия безопасности не обещаются.

Найти инструмент

Введите название инструмента, например JSON или процент.

Быстрые ссылки

Выбрать категорию

Все инструменты