> Передается ли JWT в зашифрованном или открытом виде (Go)

Уровень: middle · Роль: backend · Категория: Технические вопросы

Компании: Wildberries

Стек: Go

> Пример ответа

JWT (JSON Web Token) не обязательно передается в зашифрованном виде. По умолчанию JWT состоит из трех частей (Header, Payload, Signature), разделенных точками, и передается в открытом виде, но с цифровой подписью. Payload кодируется в Base64Url, что не является шифрованием - любой может декодировать содержимое. Подпись гарантирует целостность и подлинность данных, но не конфиденциальность.

Если требуется защита содержимого, используется JWE (JSON Web Encryption), который действительно шифрует payload. В Go для работы с JWT часто применяют библиотеку github.com/golang-jwt/jwt/v5. Пример создания подписанного токена:

GO
import "github.com/golang-jwt/jwt/v5"
claims := jwt.MapClaims{
"user_id": 123,
"role": "admin",
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
signedToken, _ := token.SignedString([]byte("secret"))

Этот токен будет передан в открытом виде (Base64Url), но с подписью. Для шифрования потребуется JWE, например, через библиотеку github.com/square/go-jose/v3.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью