String для открытого ключа с использованием Base64.getEncoder () [duplicate]

У меня была аналогичная проблема, но в моем случае решение было другим. мой файл, который содержал php-код, назывался «somename.html», изменил его на «somename.php», работал отлично

10
задан The Coder 3 February 2015 в 09:46
поделиться

1 ответ

Я не думаю, что вы можете использовать SecretKeySpec с RSA.

Это должно сделать:

byte[] publicBytes = Base64.decodeBase64(publicK);
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey pubKey = keyFactory.generatePublic(keySpec);

И декодировать личное использование PKCS8EncodedKeySpec

24
ответ дан weston 20 August 2018 в 18:55
поделиться
  • 1
    Благодарю. Я забыл о секретном ключе. Я использую PKCS8EncodedKeySpec для закрытого ключа. – The Coder 3 February 2015 в 10:16
  • 2
    Из чего import вызывается вышеупомянутое Base64? – Hooli 19 August 2016 в 12:04
  • 3
    @Hooli Я думаю, что это от org.apache.commons.codec.binary.Base64. Кроме того, вы можете использовать Base64.getDecoder (). decode (publicK) в java.util, если вы используете Java 1.8 – gybandi 12 October 2016 в 11:27
  • 4
    Я пытаюсь сделать то же самое, но получаю java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException ... когда он пытается выполнить последнюю строку .. keyfactory.generatePublic (keySpec) – Haya Raed 12 April 2017 в 14:02
  • 5
    @HayaRaed задайте новый вопрос, вы получите гораздо больше внимания. – weston 12 April 2017 в 15:45
Другие вопросы по тегам:

Похожие вопросы: