Хэши, HMAC, шифрование и JWT можно проверять в браузере. Не отправляйте данные с устройства и выбирайте алгоритм по назначению.
Хеш-функция создаёт дайджест фиксированного размера из входа произвольной длины. Одинаковые байты дают одинаковый результат; даже другой перевод строки может его изменить. Генератор хешей помогает сравнивать контрольные суммы и тестовые данные.
MD5 выдаёт 128 бит, или 32 шестнадцатеричных символа, а SHA-1 — 160 бит. Для обоих известны атаки на коллизии, поэтому они не подходят для новых подписей и защиты целостности от злоумышленника. MD5 ещё встречается при проверке случайных изменений.
SHA-256 и SHA-512 относятся к SHA-2 и выдают 256 и 512 бит. SHA-512 иногда быстрее на 64-битном оборудовании, в зависимости от реализации. Быстрый хеш сам по себе не подходит для паролей: используйте Argon2id, scrypt или правильно настроенный bcrypt с солью.
HMAC сочетает хеш-функцию с общим секретным ключом. Правильное значение подтверждает целостность и знание ключа, но не публичную личность отправителя. Генератор HMAC помогает воспроизвести подпись при разработке.
AWS Signature Version 4 использует HMAC-SHA256, производные ключи и канонический запрос. Метод, путь, заголовки и хеш тела обрабатываются по спецификации; одного хеша тела недостаточно для подписи AWS.
GitHub передаёт подпись вебхука в X-Hub-Signature-256. Stripe использует Stripe-Signature и включает в вычисление временную метку. Проверяйте исходные байты запроса, сравнивайте подписи за постоянное время и применяйте защиту от повторного воспроизведения. JWT HS256 также использует HMAC-SHA256.
AES — симметричная схема: один секретный ключ шифрует и расшифровывает. Важен не только размер ключа, но и режим. AES-GCM использует тег аутентификации и запрещает повторное использование nonce с тем же ключом. Инструмент AES подходит для изучения тестовых случаев.
RSA использует открытый и закрытый ключи. Из-за ограничений размера и стоимости обычно шифруют случайный симметричный ключ, а не целый файл. Сами данные затем обрабатывает AES.
Не используйте RSA без дополнения. Инструмент RSA применяет RSA-OAEP; при обмене проверьте параметры хеширования и форматы ключей. Шифрование RSA-OAEP отличается от подписи RSA. Защищайте закрытые ключи и расшифрованные данные.
Подписанный JWT в компактном формате JWS содержит три части Base64url, разделённые точками: заголовок, полезную нагрузку и подпись. {"alg":"HS256","typ":"JWT"} означает HMAC-SHA256, а RS256 — подпись RSA с SHA-256.
Нагрузка содержит утверждения sub, iss, aud, exp и iat: субъект, издатель, получатель, срок действия и время выпуска. Декодер JWT делает их читаемыми. Декодирование не проверяет подпись и не доказывает, что токен можно принять.
Задавайте разрешённые алгоритмы на сервере и проверяйте подпись, издателя, получателя и срок действия. Не доверяйте alg без проверки и не принимайте none случайно. Подпись JWS не шифрует нагрузку; для конфиденциальности нужен механизм вроде JWE.
Нет. SHA-256 — это быстрый хеш общего назначения, что упрощает подбор паролей брутфорсом. Вместо него используйте bcrypt, scrypt или Argon2 — они спроектированы медленными и требовательными к памяти. Наш Password Generator создаёт надёжные пароли; для хранения на сервере следует использовать bcrypt/Argon2.
Кодирование (например, Base64) преобразует данные для совместимости — оно обратимо без ключа. Шифрование (например, AES) защищает конфиденциальность — оно обратимо только с правильным ключом. Никогда не используйте Base64 как меру безопасности.
Прочитайте exp декодером JWT и сравните с текущим временем Unix. Неистёкший срок не доказывает правильность подписи; проверьте также подпись, издателя и получателя на сервере.
Да, при использовании crypto.getRandomValues(), что и делает наш Password Generator. Это CSPRNG браузера, тот же источник энтропии, что использует операционная система для генерации ключей.
AES-256 для всех новых приложений. AES-128 технически безопасен против известных атак, но AES-256 обеспечивает больший запас. Разница в производительности на современном оборудовании незначительна.