Hello
I want to load a .key file generated by phpseclib CRYPT into my java application.
This is the code i have
private RSAPublicKey loadRsaKey(File keyFile) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
String key = new String(Files.readAllBytes(keyFile.toPath()));
key = key
.replaceAll("-+[^-]+-+", "")
.replace("\n", "")
.replace("\r", "");
byte[] keyBytes = Base64.getDecoder().decode(key);
X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
return (RSAPublicKey) kf.generatePublic(spec);
}
And this is my public.key file
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAm6A7MV0AkQ+nsXNgdr71
0IVN01iGIUjqRRErdL0YM+48UlWU7xzEaVJyMy92ffLU96oB7AwreSn74eQldbyk
14A+e/1ciNonBm7/Tl3+Ui8yHEIVpzVjUccLy+IWl+jlMXv8SUrh105fPCATTgfC
v6zLcAeKIuq0T3boqr8bFEbgcvasavFpnZe+4ISReSjUh6yK8Df3WvmwlXT3gUz5
0Amj+JMtNjyu3XS8rIS8YYL7E6rPxwhoSjKMqPVAD7IYUPZoXJBNSWWOub16J+g/
Sdlg2A7Taztd8SlwNh28aZAJyE7stfQNwuyx0nlmZ5eSvpyWp2adTmbPVn1NQGYR
aH5T/xjOF2BmxsEPyLqOaqGm4mozGLDJ2Rcgdin9L4FbKbmGxx5Cgp6AAW/b6sYi
Ur0OUNcm5gyK6TCxOLaFYFnC+YleBKQIRt7s+xiDFGUar6hwAuSa+p+yR4X1opm5
ohqp/K0jtkQgfrW06xmwwCGpwjFZWm0zxsLPn1qXoQDs1MQQFDHoLZF4idPPIxy3
M0xjwIP9LysE7p8x8ltIZdm3wTqDZukkK1Yauq96mQ4Hjy+VhYzfPPl1GmQPjbWm
BiGtM/hj3kjAu0fTZDJ4d+ICFV4Hd627R0gdvX4dVaUZAEJDSiT9VfeQti9HAygs
ALQRdEaOBYfvea1MF7+ORwUCAwEAAQ==
-----END PUBLIC KEY-----
I always get this error however Illegal base64 character 2b
Any ideas why its happening and how to fix it? The key file is fine as all my PHP applications use it. Please let me know if it needs any other modifications to work with Java