38

RSA アルゴリズムを使用して公開鍵と秘密鍵を生成しています

final KeyPairGenerator keyGen = KeyPairGenerator.getInstance(ALGORITHM);
keyGen.initialize(1024);
final KeyPair key = keyGen.generateKeyPair();
final PrivateKey privateKey=key.getPrivate();
final PublicKey publickey=key.getPublic();

その後、これらのキーは Base64 エンコーダーを使用してエンコードされ、データベースに保存されます。

このエンコードされた文字列をJavaで秘密鍵と公開鍵のタイプに変換する方法は、ファイルを復号化することです。Base64Decoder を使用してこの文字列をデコードすると、バイト配列が取得されます。このバイト配列を公開鍵または秘密鍵のタイプに変換する方法は?

4

1 に答える 1

71

キーの getEncoded() の出力を表す byte[] がある場合、KeyFactory を使用してそれを PublicKey オブジェクトまたは PrivateKey オブジェクトに戻すことができます。

byte[] privateKeyBytes;
byte[] publicKeyBytes;
KeyFactory kf = KeyFactory.getInstance("RSA"); // or "EC" or whatever
PrivateKey privateKey = kf.generatePrivate(new PKCS8EncodedKeySpec(privateKeyBytes));
PublicKey publicKey = kf.generatePublic(new X509EncodedKeySpec(publicKeyBytes));
于 2014-02-27T19:00:43.540 に答える