Что означает «секретный base64 закодированный» на jwt.io и как бы я смоделировал его с помощью `openssl dgst` - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь получить тот же вывод из jwt.io и openssl.Пока я не помечаю"секретный base64 кодированный", я могу принять участие до подписи, выполнить ее через

echo -n "pasted data from jwt.io" | \
  | openssl dgst -binary -sha512 -hmac abc \
  | openssl enc -base64 -A;

и получить от openssl ту же самую подпись, что иjwt.io показывает (используя HS512!).

Если я нажимаю «секретный base64 кодированный», очевидно, что подпись меняется на jwt.io.Теперь я кодирую секрет «abc» с base64, чтобы получить «YWJj», и использую его в качестве секрета для openssl, как в

echo -n "pasted data from jwt.io" | \
  | openssl dgst -binary -sha512 -hmac YWJj \
  | openssl enc -base64 -A;

. Это не создает ту же сигнатуру, поэтому я, вероятно, неправильно понимаю этот флажок.Что именно это делает и как мне нужно позвонить openssl, чтобы симулировать это?

(Я знаю, что есть разница между url-кодом base64 и base64, но это не должно иметь значения для кодировки "abc".)

1 Ответ

0 голосов
/ 18 сентября 2018

Опция secret base64 encoded on https://jwt.io означает, что секрет, который вы вставляете в поле ввода, закодирован в base64, поэтому его необходимо декодировать перед его применением.Затем jwt.io сначала делает этот дополнительный шаг для декодирования секрета.

jwt.io действительно выдает одинаковый хэш в обоих случаях:

  • secret = 'abc' и secret base64 encoded = нет или
  • secret = 'YWJj' и secret base64 encoded = yes,

, так что деталь работает нормально и ведет себя как ожидалось.

Но ваши командные строки OpenSSL абсолютно одинаковы, отличаются только ключи.OpenSSL не знает о вашей кодировке и обрабатывает их как разные ключи, поэтому дает разные результаты.

Я не знаю ни одного переключателя командной строки, который бы указывал OpenSSL рассматривать ключ как закодированный ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...