在文本文件中编写RSA公钥

时间:2016-11-29 02:26:34

标签: 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 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();

}

}

1 个答案:

答案 0 :(得分:1)

注意pubKeyBytespublicKeyBytes不相同。

您正在pubKeyBytes获取公钥内容,但是从publicKeyBytes编写流。它应该是:

byte[] pubKeyBytes = keys.getPublic().getEncoded();
file = new File("pubkey.txt");
fop = new FileOutputStream(file);
fop.write( pubKeyBytes );
fop.close();

你的代码是如何编译的?