如何在Java中使用DES(CBC模式)加密序列化对象?

如何在Java中使用DES(CBC模式)加密序列化对象?,java,serialization,encryption,des,Java,Serialization,Encryption,Des,我在读这篇关于序列化的文章 这是我第一次看到对序列化对象进行加密。 我试图加密一些可序列化对象,然后将它们保存到文件中。 但本文的示例使用ECB模式,该模式可以显示加密明文的信息。我想知道,如何对序列化对象进行加密 使用CBC而不是ECB模式 为了使用CBC,需要一个初始向量。该向量必须与序列化对象一起保存,但如果该向量被加密,则我们无法找到该向量以解密该对象 另外,可以说初始向量将以明文形式保存在保存可序列化对象的文件中。但那文件不会被销毁吗 使用CBC模式的示例将非常有用。有一个不错的问题和

我在读这篇关于序列化的文章

这是我第一次看到对序列化对象进行加密。 我试图加密一些可序列化对象,然后将它们保存到文件中。 但本文的示例使用ECB模式,该模式可以显示加密明文的信息。我想知道,如何对序列化对象进行加密 使用CBC而不是ECB模式

为了使用CBC,需要一个初始向量。该向量必须与序列化对象一起保存,但如果该向量被加密,则我们无法找到该向量以解密该对象

另外,可以说初始向量将以明文形式保存在保存可序列化对象的文件中。但那文件不会被销毁吗


使用CBC模式的示例将非常有用。

有一个不错的问题和答案。IV是密码/密钥的摘要。这里引用的解决方案可以通过适当的序列化机制通过tearrayoutputstream扩展到
,或者直接扩展到
文件输出流


(无论如何都不是专家,但指出已经发生了什么…

如果你担心安全漏洞,不要使用DES——它已经被破坏了。使用3DES或AES。我不确定这其中的Java方面,但在CBC中,应该存储未加密的IV,因为否则没有人可以解密生成的消息。它不会泄漏任何东西,因为只要IV从未重复,攻击者就不能使用它做任何事情,因为它被输入到分组密码中,这是一个PRF。