Как пользоваться
- Вставьте текст скрипта или таблицы стилей в поле Текст файла или выберите файл под Или файл.
- Выберите Алгоритм. Используйте Все три, чтобы записать по одному значению для каждого алгоритма.
- Введите Адрес файла точно так, как страница будет его загружать. Элемент для вставки появится ниже.
- Скопируйте Значение integrity или Элемент для вставки на свою страницу. Чтобы проверить имеющееся значение, вставьте его в поле Значение integrity для проверки.
Как получается значение
Значение integrity — это название алгоритма хеширования, дефис и дайджест файла в base64. Браузер хеширует точные байты файла, поэтому значение меняется, если изменится хотя бы один байт. Все соответствующие браузеры поддерживают sha256, sha384 и sha512 (SRI, раздел 3.2). Base64 использует алфавит RFC 4648 со знаком = в конце для дополнения (раздел 4).
Значение с несколькими элементами, разделёнными пробелами, допускается (раздел 3.2.1). Браузер использует самый стойкий из известных ему алгоритмов, поэтому sha512 решает вместо sha256.
integrity = алгоритм + "-" + base64(дайджест(байты))
- sha256: 44 символа base64 после дефиса.
- sha384: 64 символа после дефиса.
- sha512: 88 символов после дефиса.
Что делает проверка и что она не охватывает
Проверка проходит, когда байты файла дают одно из значений самого стойкого алгоритма в атрибуте (SRI, раздел 3.3). Элемент с алгоритмом, неизвестным браузеру, пропускается. Если не осталось ни одного элемента, проверка проходит без сравнения, поэтому этот инструмент сообщает о таком случае как о непроверенном.
Значение ничего не говорит о том, откуда взят файл. Оно доказывает только то, что у файла есть именно те байты, которые были захешированы. Пересоздавайте значение каждый раз, когда файл меняется, например после обновления библиотеки, и храните его рядом с элементом.
Текст abc
Текст abc — это три байта 61 62 63 в UTF-8. Выберите sha256 и введите abc в поле текста. Значение integrity для этого текста приведено в таблице, а элемент для вставки содержит его вместе с crossorigin, равным anonymous.
| Алгоритм | Значение integrity для abc |
|---|---|
| sha256 | sha256-ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0= |
| sha384 | sha384-ywB1P0WjXou1oD1pmsZQBycsMqsO3tFjGotgWkP/W+2AhgcroefMI1i67KE0yCWn |
Частые вопросы
Нужно ли менять значение, когда файл меняется?
Да. Значение относится к одной точной последовательности байтов, поэтому обновление библиотеки, даже с одним изменённым пробелом, даёт другое значение. Тогда проверка не проходит, пока атрибут не содержит новое значение.
Какой алгоритм выбрать?
Все три поддерживаются каждым браузером (SRI, раздел 3.2). sha384 стойче, чем sha256, и короче, чем sha512. Выберите «Все три», чтобы записать значение для каждого алгоритма, и браузер проверит самый стойкий.
Почему у значения есть название алгоритма и дефис?
Название говорит браузеру, какой дайджест вычислять. Дефис отделяет название, потому что в названиях дефисов нет, а в значении base64 при алфавите для URL дефисы могут быть, как допускает раздел 3.5 SRI.
Инструмент отправляет мой файл на сервер?
Нет. Ваш браузер читает файл и хеширует его методом дайджеста браузера (crypto.subtle). Страница не делает сетевых запросов и не хранит ни того, что вы вводите, ни того, что выбираете.
Почему элемент для вставки содержит crossorigin?
SRI требует CORS для ресурса с другого источника (раздел 5.3), а crossorigin со значением anonymous просит браузер использовать CORS. Элемент содержит его и для скриптов, и для таблиц стилей.
Источники
- W3C: Subresource Integrity, рабочий проект от 20 марта 2026 г., разделы 3.2, 3.3, 3.5 и 5.3 (на английском)
- RFC 4648: кодировки данных Base16, Base32 и Base64, раздел 4 (на английском)
- MDN: SubtleCrypto.digest() (на английском)
Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..