我正在尝试生成RSA密钥对并将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();
}
}
答案 0 :(得分:1)
注意pubKeyBytes
和publicKeyBytes
不相同。
您正在pubKeyBytes
获取公钥内容,但是从publicKeyBytes
编写流。它应该是:
byte[] pubKeyBytes = keys.getPublic().getEncoded();
file = new File("pubkey.txt");
fop = new FileOutputStream(file);
fop.write( pubKeyBytes );
fop.close();
你的代码是如何编译的?