Java: преобразование между типом ключа и строкой - PullRequest
0 голосов
/ 23 сентября 2019

Можно ли взять сгенерированный мной открытый ключ, преобразовать его в строку, полностью изменить процесс и снова использовать его в качестве ключа?

    generator = KeyPairGenerator.getInstance("RSA");
    generator.initialize(2048);

    KeyPair keyPair = generator.generateKeyPair();

    RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
    RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();

Затем преобразовать его в строку:

String public = someMethod(publicKey)

, а затем отмените его позднее:

RSAPublicKey newPublicKey = someMethod(public)

1 Ответ

2 голосов
/ 23 сентября 2019

Открытый ключ можно преобразовать в строку следующим образом.

String publicKeyString = Base64.getEncoder().encodeToString(publicKey.getEncoded());

Затем эту строку можно преобразовать обратно в открытый ключ следующим образом.

byte[] publicKeyBytes = Base64.getDecoder().decode(publicKeyString);
X509EncodedKeySpec spec = new X509EncodedKeySpec(publicKeyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey2 = keyFactory.generatePublic(spec);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...