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

标签 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"

只有一些区别: 而不是 + char Azure HSM 返回 - 而不是 / char Azure HSM 返回 _ 并且来自 Azure 的签名未填充。

base 64 不允许使用这些字符:https://en.wikipedia.org/wiki/Base64#Base64_table

有人知道这些差异可能来自哪里吗?

最佳答案

Does anyone have an idea from where these differences may came from?

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

关于php - Azure RSA HSM 签名 - Base64 中的错误字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53262295/

相关文章:

c# - Azure持久功能: Fan Out vs. Parallel.ForEachAsync

java - Tomcat试用Thawte证书

linux - 为 Azure 云服务启用 HTTPS(运行 Linux 服务器的虚拟机)

php - 评估()不工作?

php - 如何合并两个不同的查询?

javascript - 使用 AJAX 将图像从 Canvas 上传到 PHP 服务器

ssl - 在 Bluemix 上安装 pyOpenSSL

php - 在 laravel 中登录时更新数据库

Azure应用程序服务如何连接到VM中的SQL Server

azure - 在 Azure 数据工厂中创建字典对象