Подписание Azure RSA HSM — плохие символы в base64

Мы пытаемся использовать Azure HSM для цифровых подписей. К сожалению, есть различия между тем, что мы имеем от PHP и от HSM.

То есть тот же контент, подписанный из PHP методами openssl_sign, возвращает

string(344) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9+B9kQO0t3mxObZ2+EndJ0MEDIuYEcj20BaIlXuM+IAFz25jeZy7VnoGsq+r/L3nxi4b+C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66/Lm0DHMs1r/7XcQhpYEKhZsMCwnk4KzPt3YdE/WpdO+yyVoaM19l+4vVu/GMOKLbQhTtNPEZ+2dw4YtIiUmJz/9o/ARdTaI8XMFWQxQCEgdnii+I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ+RjRoJoQLTxQ=="

Контент, подписанный Azure HSM, выглядит следующим образом

string(342) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9-B9kQO0t3mxObZ2-EndJ0MEDIuYEcj20BaIlXuM-IAFz25jeZy7VnoGsq-r_L3nxi4b-C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66_Lm0DHMs1r_7XcQhpYEKhZsMCwnk4KzPt3YdE_WpdO-yyVoaM19l-4vVu_GMOKLbQhTtNPEZ-2dw4YtIiUmJz_9o_ARdTaI8XMFWQxQCEgdnii-I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ-RjRoJoQLTxQ"

Есть только несколько различий:
вместо + символ Azure HSM возвращается -
вместо / символ Azure HSM возвращается _
и подпись от Azure не дополняется.

Эти символы не разрешены в базе 64: https://en.wikipedia.org/wiki/Base64#Base64_table

У кого-нибудь есть идея, откуда эти различия?

1

Решение

У кого-нибудь есть идея, откуда эти различия?

Похоже, что Azure использует URL-адрес base64, как указано в RFC 4648. Вы можете найти его в Раздел «Сводная таблица вариантов» статьи в Википедии Вы связаны

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]