我要与之通信的服务器上有一个带有公共密钥的文件。 现在,我在将文件存储到我的应用程序时遇到了问题。 除了从文件中读取公钥,还有其他方法吗? 我总是收到java.io.FileNotFoundException。
我尝试将密钥硬编码为字符串,然后将其传递为:
Byte[] keyBytes = publicKey.getBytes();
但是这对我来说没有效果。
到目前为止,我的代码是:
File pubKeyFile = new File("keyFile/public.der");
DataInputStream dis = new DataInputStream(new FileInputStream(pubKeyFile));
byte[] keyBytes = new byte[(int) pubKeyFile.length()];
dis.readFully(keyBytes);
dis.close();
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
RSAPublicKey publicKey = (RSAPublicKey)keyFactory.generatePublic(keySpec);
现在我认为我做错了很大的事,但是我想不出更好的方法。
感谢您的帮助