Кодирование и хеши

Base64, URL-кодирование, HTML-мнемоники и Юникод — в обе стороны. Рядом контрольные суммы: MD5, SHA-1, SHA-256 и SHA-512 для текста и для файла, со сверкой по эталону.

Что делаем

Исходный текст

Результат

Что для чего

Base64 превращает любые данные в строку из букв и цифр. Нужен там, где двоичное не пройдёт: картинка внутри CSS, вложение в письме, ключ в конфиге. Платить приходится объёмом — текст растёт примерно на треть. Шифрованием это не является: раскодировать может кто угодно, в том числе этим же инструментом.

URL-кодирование бывает двух видов, и их путают. «Часть адреса» кодирует всё подряд, включая косые черты и двоеточия, — так кодируют значение параметра. «Адрес целиком» щадит знаки, из которых адрес состоит, и годится, когда нужно подлатать ссылку, не разломав её.

HTML-мнемоники нужны, чтобы текст не перепутали с разметкой: знак «меньше» в тексте и начало тега выглядят одинаково. Кодирование здесь строгое — заменяются все пять опасных знаков, включая кавычки, чтобы результат можно было класть и внутрь атрибута.

Хеши — это короткий отпечаток данных. Поменяйте в файле один байт, и отпечаток изменится полностью. Отсюда и применение: скачали дистрибутив, посчитали сумму, сверили с той, что на сайте, — значит, файл дошёл целым и его не подменили. Вставьте эталон в поле слева, и совпавшая строка подсветится сама.

Какой выбрать. Для сверки файлов годится любой. Для защиты — только SHA-256 и SHA-512: MD5 и SHA-1 давно научились подделывать, то есть подбирать другой файл с тем же отпечатком. MD5 остаётся здесь потому, что им по-прежнему подписывают архивы и старые дистрибутивы, и сверить бывает нужно. Браузер MD5 считать не умеет — его из встроенных средств убрали, — поэтому он посчитан нашим кодом, проверенным по контрольным значениям из спецификации.

Файл для подсчёта суммы никуда не отправляется: он читается в браузере. Поэтому и размер ограничен памятью вкладки — очень большой образ лучше проверить обычной командой в терминале.

Рядом по смыслу