首頁  >  文章  >  Java  >  如何在 Java 中從檔案載入 RSA 私鑰以進行 SAML 簽章?

如何在 Java 中從檔案載入 RSA 私鑰以進行 SAML 簽章?

DDD
DDD原創
2024-10-25 06:45:28781瀏覽

How to Load an RSA Private Key from File in Java for SAML Signing?

如何從檔案載入RSA 私鑰

嘗試使用RSA 私鑰簽署SAML 1.1 斷言消費者服務訊息時,可能會發生以下錯誤:

<code class="java">java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format</code>

此錯誤表示私鑰的格式不正確。 RSA 私鑰通常以 PEM 格式存儲,但 Java 要求它們採用 PKCS8 格式。

要將RSA 私鑰從PEM 轉換為PKCS8 格式,可以使用以下指令:

<code class="bash">openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file  -nocrypt > pkcs8_key</code>

將私鑰轉換為PKCS8 格式後,您可以使用下列程式碼將其載入到Java 中:

<code class="java">byte[] privKeyBytes = Files.readAllBytes(Paths.get("pkcs8_key"));
KeySpec ks = new PKCS8EncodedKeySpec(privKeyBytes);
RSAPrivateKey privKey = (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(ks);</code>

您現在可以使用privKey 對SAML 訊息進行簽署。

以上是如何在 Java 中從檔案載入 RSA 私鑰以進行 SAML 簽章?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn