Java 在文本文件中写入RSA公钥
我正在尝试生成一个RSA密钥对,并将RSA公钥存储在一个文本文件中,以便稍后打开它。我有我的文本文件,但在我运行saveRSApublicKey函数后,它不会向我的pubkey.txt文件写入任何内容。请帮忙Java 在文本文件中写入RSA公钥,java,encryption,fileoutputstream,Java,Encryption,Fileoutputstream,我正在尝试生成一个RSA密钥对,并将RSA公钥存储在一个文本文件中,以便稍后打开它。我有我的文本文件,但在我运行saveRSApublicKey函数后,它不会向我的pubkey.txt文件写入任何内容。请帮忙 public class Server { static KeyPair keys; static byte[] RSAencrypted; File file; FileOutputStream fop = null; public Receiver() throws NoSuchA
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
和pubKeyBytes
不一样
您在publicKeyBytes
中获取公钥内容,但从publicKeyBytes
写入流。应该是:
byte[] pubKeyBytes = keys.getPublic().getEncoded();
file = new File("pubkey.txt");
fop = new FileOutputStream(file);
fop.write( pubKeyBytes );
fop.close();
您的代码是如何编译的?是的。对不起,我的意思是“运行我的方法后”我编辑了。为什么
keys
是静态的?pubKeyBytes
是否包含字节?是的,它确实包含字节。我不明白为什么它不向文本文件写入任何内容