[英]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=kimssl_pkey_get_public($n,$e); #done
use phpseclib\Crypt\RSA; $key=Crypt_RSA()::loadKey($e,$n); #you's use use???!
$key
的值現在應該是你所期望的。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.