Я уже несколько дней ломаю себе голову над этим и просто не могу этого понять. У меня есть строка, это токен, который я получаю в JWT для аутентификации, и т.д. c.
Токен был создан так:
token = base64_urlsafe_encode(DATA)
DATA = IV + CIPHER_TAG + CIPHER_TEXT
IV = 16 bytes - initialization vector
CIPHER_TAG = 16 bytes - cipher tag
CIPHERTEXT = remaining bytes - encrypted(CREDENTIAL)
CREDENTIAL = <username>:<password>
Теперь я могу декодировать -base64 входящий jwt, без проблем. Но мой токен выглядит так: (изменив некоторые символы по соображениям безопасности, я изменил только буквенно-цифровые символы на 0)
token" => "00_0000000000000000000000000000000000-00_000000000000000000000000_0000_00000000000000000000000_0000000000000000000000000000000==",
Я не могу декодировать 64 в двоичный, потому что он не работает с символами "_" и " - "и ничего, кроме base64.
Кто-нибудь может помочь мне понять, как это сделать? Как они могут сказать: token = base64_urlsafe_encode(DATA)
, если токен содержит недопустимые (не base64) символы?