Azure RSA HSM签名-base64中的错误字符

时间:2018-11-12 12:32:36

标签: php azure ssl rsa hsm

我们正在尝试将Azure HSM用于数字签名。不幸的是,PHP和HSM之间存在差异。

即使用openssl_sign方法从PHP签名的相同内容返回

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返回+而不是- char Azure HSM返回/而不是_ char 并且不会填充来自Azure的签名。

这些字符不能用64为基数:https://en.wikipedia.org/wiki/Base64#Base64_table

有人知道这些差异可能来自何处吗?

1 个答案:

答案 0 :(得分:1)

  

有人知道这些差异可能来自何处吗?

Azure似乎使用了RFC 4648中特定的URL安全base64。您可以在链接的“Variants summary table” section of the Wikipedia article中找到它。