用例:客戶端在瀏覽器中創建RSA密鑰對,將pubkey發送到服務器,然後使用保存在本地存儲中的secretkey簽名他的消息。PHP中可創建PEM密鑰對
我已經看過JWT,但它沒有在瀏覽器中生成密鑰對(或者我找不到它)。我找到了一個創建密鑰的庫(https://github.com/juliangruber/keypair),但是我得到一個在openssl_pkey_get_public
函數中無法在PHP中讀取的pub密鑰。
我真的被卡住了 - 我認爲它應該是相當普遍的,但經過一整天的搜索,我無法理解一件事。很多標準,格式...
任何人都可以建議一個圖書館或方法,我可以在cient創建密鑰在JS和驗證郵件,使用pubkey在PHP?
這是我到目前爲止有: 我創建了一個JS PUBKEY,使用上述
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAM3CosR73CBNcJsLv5E90NsFt6qN1uziQ484gbOoule8leXHFbyIzPQRozgEpSpi
whr6d2/c0CfZHEJ3m5tV0klxfjfM7oqjRMURnH/rmBjcETQ7qzIISZQ/iptJ3p7Gi78X5ZMh
LNtDkUFU9WaGdiEb+SnC39wjErmJSfmGb7i1AgMBAAE=
-----END RSA PUBLIC KEY-----
然後我救它「/pubKey.pem」文件,並嘗試讀它提到庫PHP: openssl_pkey_get_public(file_get_contents("/pubKey.pem"));
它失敗。我想格式不是預期的格式?
問題要求我們推薦或找到書籍,工具,軟件庫,教程或其他非本地資源,因爲它們傾向於吸引自以爲是的答案和垃圾郵件,所以不適合堆棧溢出。相反,請描述問題以及到目前爲止解決問題所做的工作。 – Epodax
它可能不是那麼常見的一個需求,因爲它似乎試圖重複SSL/TLS已經做的事情 –
嗯,當_server_創建密鑰時,這真的很常見。 在我的情況下,客戶端應該創建密鑰並向公衆提供服務器,所以我們沒有客戶端的祕密 - 我們可以驗證他的消息。它在現實生活中也很常見,但麻煩在於我們必須通過js在瀏覽器中創建密鑰。 –