我正在尝试生成 RSA key 对并将 RSA 公钥存储在文本文件中,以便稍后打开它。我有我的文本文件,但在运行 saveRSApublicKey 函数后,它不会向我的 pubkey.txt 文件写入任何内容。请帮忙。
public class Server {
static KeyPair keys;
static byte[] RSAencrypted;
File file;
FileOutputStream fop = null;
public Receiver() throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException{
keys = KeyPairGenerator.getInstance("RSA").generateKeyPair();
}
public void saveRSApublicKey() throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, IOException{
byte[] pubKeyBytes = keys.getPublic().getEncoded();
file = new File("pubkey.txt");
fop = new FileOutputStream(file);
fop.write(publicKeyBytes);
fop.close();
}
}
最佳答案
注意 pubKeyBytes
和 publicKeyBytes
不同。
您正在 pubKeyBytes
中获取公钥内容,但从 publicKeyBytes
写入流。应该是:
byte[] pubKeyBytes = keys.getPublic().getEncoded();
file = new File("pubkey.txt");
fop = new FileOutputStream(file);
fop.write( pubKeyBytes );
fop.close();
你的代码是如何编译的?
关于java - 将 RSA 公钥写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40856806/