Какой инструмент для ключей или хешей мне нужен
| Задача | Инструмент |
|---|---|
| Прочитать сертификат: имена, срок действия, отпечатки | Декодер сертификатов |
| Проверить CSR перед отправкой в CA | Декодер CSR |
| Конвертировать между текстовым PEM и двоичным DER | PEM в DER, DER в PEM |
| Отпечаток или конвертация открытого SSH-ключа | Отпечаток SSH-ключа |
| SHA-256 текста или файла в hex и Base64 | SHA-256 в Base64 |
| Content-MD5 и устаревшие контрольные суммы | MD5 в Base64 |
| Подписать вебхук или API-запрос | Генератор HMAC |
integrity="sha384-…" для скрипта или стилей | Генератор SRI-хешей |
| Случайная строка Base64 любой длины | Генератор случайного Base64 |
Laravel APP_KEY, ключи AES, секреты JWT и HMAC | Генератор ключей Base64 |
| Nonce для Content Security Policy | Генератор nonce для CSP |
| Зашифровать или расшифровать текст паролем | AES-шифрование, AES-расшифровка |
Где Base64 встречается с криптографией
PEM – это Base64 от ASN.1 в кодировке DER между строками -----BEGIN …-----. Его используют сертификаты, CSR, открытые и закрытые ключи. DER в Base64 начинается с MII у большинства сертификатов и ключей RSA, с MFkw у открытых ключей EC P-256 и с MCowBQYDK2Vw у открытых ключей Ed25519, так что тип часто виден ещё до декодирования.
SSH-ключи устроены иначе. Часть AAAAC3NzaC1lZDI1NTE5… в строке ssh-ed25519 – это Base64 от блоба ключа, а привычный отпечаток SHA256:… – это хеш этого блоба в Base64 без дополнения.
Хеши – это сырые байты. SHA-256 от текста hello – 32 байта: 2cf24dba…9824 в виде 64 hex-символов или LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ= в виде 44 символов Base64. Подписи вебхуков, атрибуты SRI и заголовки Content-MD5 в S3 ждут форму Base64, и сравнение её с hex-дайджестом – частый источник ошибок «signature mismatch».
Случайные секреты в конфигах – обычно 32 случайных байта в Base64, например openssl rand -base64 32. Генератор ключей выдаёт тот же формат с пресетами для популярных фреймворков.
Чего эти инструменты не делают
- Не проверяют цепочки сертификатов и отзыв. Подключаться к другим серверам странице намеренно запрещено.
- Не показывают ключевой материал закрытых ключей. Инструменты для сертификатов показывают только тип и размер закрытого ключа, а инструмент для SSH читает из файла закрытого ключа лишь открытую часть.
- MD5 и SHA-1 есть для совместимости с существующими системами. Не используйте их в новых схемах безопасности.
Подпись и проверка JWT есть в разделе веб-инструментов и токенов. Почему весь этот Base64 сам по себе не секрет, объясняет статья кодирование и шифрование.
Вопросы и ответы
Почему хеши и ключи так часто записывают в Base64?
Потому что так короче, чем в hex. Хеш SHA-256 – это 64 hex-символа, но 44 символа в Base64, а 32-байтовому ключу нужно 44 символа Base64 вместо 64. Поэтому Base64 используют атрибуты SRI, отпечатки SSH, подписи HMAC и большинство секретов в .env.
Base64 – это шифрование?
Нет. Base64 обратит кто угодно. Закрытый ключ PEM – это просто Base64 от байтов ключа, поэтому защищать нужно сам файл. Настоящее шифрование, как в инструменте AES, без ключа или пароля не обратить.
Случайные ключи надёжны?
Они берутся из crypto.getRandomValues браузера – того же криптографически стойкого источника, который WebCrypto использует для ключей. Ничего не сохраняется и не отправляется, так что каждое значение существует только на вашем экране, пока вы его не скопируете.