Я пытаюсь проверить подпись OAuth, сгенерированную в коде, по отношению к «известному уважаемому источнику». Все мои шаги проверены на правильность, кроме последнего, в котором «строка базовой подписи» HMAC-SHA1 хешируется против секретного ключа, а затем кодируется base64.
Я подтвердил, что мое хеш-значение совпадает с ожидаемым алгоритмом. Затем я подтвердил, что кодирование base64 было таким же. Пытаясь определить причину сбоя моего кодирования, я хотел проверить используемый кодер.
Вот строка (хэш), закодированная в base64:
203ebb13a65cccaae5cb1b9d5af51fe41f534357
Вот кодирование base64, которое приводит к моему коду:
MjAzZWJiMTNhNjVjY2NhYWU1Y2IxYjlkNWFmNTFmZTQxZjUzNDM1Nw ==
Согласно http://www.motobit.com/util/base64-decoder-encoder.asp, это правильный результат:
![Base64 1](https://i.imgur.com/upYI2.png)
Но, согласно http://www.online -convert.com / result / 096d7b00138f3726daee5f6ddb107a62 (с секретной и базовой строкой, а не с хешем), должна была быть выведена другая base64. Обратите внимание, что вывод хеша - мой правильный хэш, несмотря на разницу в base64:
![Base64 1](https://i.imgur.com/yZfjZ.png)
Наконец, «официальный» тестер (http://hueniverse.com/oauth/guide/authentication/) выводит третий другой base64 из того же хеша:
![Base64 1](https://i.imgur.com/zgLmC.png)
Я понятия не имею, что я делаю неправильно, и тот факт, что эти инструменты выводят разные результаты, заставляет меня задуматься, существует ли на самом деле такая вещь, как кодирование base64 или они действительно используют разные алгоритмы? Возможно, тот факт, что это для OAuth, поможет вам определить ответ.
Спасибо за любые выводы от мудрых.