簡體   English   中英

openssl 公鑰中從蘋果轉換公鑰

[英]Transform public key from apple in openssl public key

我如何使用https://appleid.apple.com/auth/keys和 openssl 的公鑰?

<?php
$key = '-----BEGIN PUBLIC KEY-----'. "\n".
chunk_split("1JiU4l3YCeT4o0gVmxGTEK1IXR-Ghdg5Bzka12tzmtdCxU00ChH66aV-4HRBjF1t95IsaeHeDFRgmF0lJbTDTqa6_VZo2hc0zTiUAsGLacN6slePvDcR1IMucQGtPP5tGhIbU-HKabsKOFdD4VQ5PCXifjpN9R-1qOR571BxCAl4u1kUUIePAAJcBcqGRFSI_I1j_jbN3gflK_8ZNmgnPrXA0kZXzj1I7ZHgekGbZoxmDrzYm2zmja1MsE5A_JX7itBYnlR41LOtvLRCNtw7K3EFlbfB6hkPL-Swk5XNGbWZdTROmaTNzJhV-lWT0gGm6V1qWAK2qOZoIDa_3Ud0Gw", 64).
'-----END PUBLIC KEY-----';

print_r($key);
$res = openssl_pkey_get_public($key);

print_r(openssl_pkey_get_details($res));



Fatal error: Uncaught TypeError: openssl_pkey_get_details(): Argument #1 ($key) must be of type OpenSSLAsymmetricKey

您的問題是來自 Apple 的初始數據(第 1 行)。 它不是公鑰,而是 JWKS,由模數 (n)、指數 (e) 和其他無用的東西(在本例中)組成。

您需要您擁有的n值和e值,這可能是AQAB (65537)。

不幸的是, php openssl 函數是一團糟,所以沒有用於轉換它的內置功能。

盡管如此,您仍然可以通過一些工作將其轉換為您的初始$key值。

$key的值現在應該是你所期望的。

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM