java - 将 RSA 公钥写入文本文件

标签 java encryption fileoutputstream

我正在尝试生成 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();

}

}

最佳答案

注意 pubKeyBytespublicKeyBytes 不同。

您正在 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/

相关文章:

java.lang.ClassNotFoundException : org. hibernate .cfg.Configuration

java - TIntProcedure 无法解析

java - 将文件转换为字节数组并通过 UDP 传输。如何从这个字节数组中获取服务器上的文件名?

java - 在Java中通过Inputstream读取内容时删除列名

java - FileOutputStream 空间不足时关闭

java - 如何设置 Controller 范围的全局变量

java - Rxjava : How to combine multiple observables without all observables completing?

python - 如何计算类似于 YouTube 的短定长混淆 ID(例如 2WNrx2jq184)

java - 在 Windows、C++ 和 Java 中加密传输中的数据

java - 在 Java 中加密/解密 "AES/ECB/PKCS5Padding"