ファイルから RSA 秘密キーをロードする方法
Java で RSA 秘密キーを操作する場合、多くの場合、RSA 秘密キーをロードする必要があります。ファイルから。これは java.security パッケージを使用して実行できます。ただし、このプロセス中にエラーが発生する場合があります。
一般的なエラーの 1 つは次のとおりです。
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format
これは通常、秘密キー ファイルの形式が正しくないことを示します。秘密キーは PKCS8 形式である必要があります。
秘密キーを PKCS8 形式に変換するには、次のコマンドを使用できます。
openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file -nocrypt > pkcs8_key
このコマンドを実行すると、変換された秘密キーが pkcs8_key ファイルに保存されます。次に、次のコードを使用して、このファイルを Java プログラムにロードできます:
<code class="java">import java.io.FileInputStream; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.security.InvalidKeySpecException; import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; public class LoadRsaPrivateKeyFromFile { public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException { // Read the converted private key file byte[] keyBytes = Files.readAllBytes(Paths.get("pkcs8_key")); // Create a PKCS8EncodedKeySpec to wrap the key bytes PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes); // Create a KeyFactory to generate the private key KeyFactory factory = KeyFactory.getInstance("RSA"); // Generate the private key PrivateKey privateKey = factory.generatePrivate(spec); // Use the private key to sign a message // ... } }</code>
以上がRSA 秘密キーをファイルからロードして「InvalidKeySpecException」を回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。