Cómo generar un objeto PublicKey desde un archivo en Java

Tengo un archivo que contiene una clave RSA pública (generada con ssh-keygen). Me gustaría leer el archivo y generar un PublicKeyobjeto.

Antes de eso, convertí el archivo, ya que leer los archivos originales parece ser imposible:

# http://unix.stackexchange.com/questions/220354/how-to-convert-public-key-from-pem-to-der-format/220356#220356
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PEM > ~/.ssh/id_rsa.pub.pem
openssl rsa -RSAPublicKey_in -in ~/.ssh/id_rsa.pub.pem -inform PEM -outform DER -out ~/.ssh/id_rsa.pub.der -RSAPublicKey_out

Desde Java - Cifrar cadena con un archivo de clave pública existente, definí la función readFileBytes:

public static byte[] readFileBytes(String filename) throws IOException {
    Path path = Paths.get(System.getProperty("user.home") + filename);
    return Files.readAllBytes(path);
}

Ahora me gustaría leer el archivo y generar el objeto PublicKey, pero no pude encontrar una manera de hacerlo; java.security.spec.RSAPublicKeySpecno proporciona un constructor de ajuste y java.security.spec.X509EncodedKeySpecarroja un error java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException: algid parse error, not a sequence:

//RSAPublicKeySpec publicSpec = new RSAPublicKeySpec(readFileBytes("/.ssh/id_rsa.pub.der"));
// No fitting construktor

X509EncodedKeySpec publicSpec = new X509EncodedKeySpec(readFileBytes("/.ssh/id_rsa.pub.der"));
// Gives: "algid parse error, not a sequence"
Respuesta 1

Estoy usando CipherInputStream y CipherOutputStream para encriptar archivos usando AES. cifrar (...) parece estar funcionando bien, pero mi función de descifrar (...) solo descifra los primeros 16 bytes de mis archivos. Aquí ...

No puedo entender cómo el orden natural de la clase debe ser "coherente con iguales" al implementar la interfaz Comparable. Detecté una falla en mi programa y, por lo tanto, la revisé en ...

Tengo una cadena como String s = "hello.are..you"; Prueba de cadena [] = s.split ("\\."); La prueba [] incluye 4 elementos: hola ¿Cómo generar tres elementos no vacíos usando split ()?

Estoy tratando de crear una aplicación web, que utilizará una interfaz js e invocará Spring WS en el backend. Digamos que este es un tipo de sitio web de compras. Entonces, podría tener servicios como ...