gpt4 book ai didi

java - 如何正确加密用 jackson 编写的 JSON 文件

转载 作者:行者123 更新时间:2023-12-02 09:27:28 28 4
gpt4 key购买 nike

我目前正在开发一个小型 Java/Kotlin 程序,它将设置和一些数据写入 JSON 文件。我想实现使用 AES 加密该文件的功能。使用 AES 加密文件完全没有问题。

到目前为止,我都是这样做的(文件名是“保存文件对话框”中所需保存文件的文件路径,“它”来自 fileOutputStream.use,文件名是目标,superCategory 是要写入的 JSONNode) :

//in the end write the stuff to the file
objectMapper.writerWithDefaultPrettyPrinter().writeValue(it, superCategory)

//TODO encrypt? best case: encrypt before ever writing to a file
if(encrypt) {
//up to now I don't know how to get a stream from objectMapper instead of doint it this way
val infile = File(filename)
val outfile = File(filename+"_enc")
AESfileCrypto.doEncryption(password = password, inputFile = infile, outputFile = outfile)
infile.delete()
}

AESfileCrypto 是一个自编写的类,它将输入文件加密到输出文件,而不影响输入文件。正如您可能从我的评论中看到的,我根本不喜欢这样做。仅加密文件并随后删除未加密的文件似乎很容易受到攻击。

我很想在写入任何内容之前对这些内容进行加密。有什么方法可以得到来自 objectMapper 的 FileInputStream 而不是直接写入文件?或者是否有不同的方法来编写加密的 JSON 文件?

最佳答案

将 Jackson 输出写入 ByteArrayOutputStream。然后根据需要对这些字节进行加密,并将它们写入用户选择的文件中。

关于java - 如何正确加密用 jackson 编写的 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58238662/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com