如何在Java中使用DES(CBC模式)加密序列化对象?
我正在阅读这篇关于序列化的文章。
这是我第一次看到加密序列化对象。 我正在尝试加密一些可序列化的对象,然后将它们保存到文件中。 但本文的示例使用 ECB 模式,众所周知,该模式会泄露有关加密明文的信息。我想知道如何加密序列化对象 使用 CBC 而不是 ECB 模式?
为了使用 CBC,需要一个初始向量。该向量必须与序列化对象一起保存,但如果向量被加密,那么我们就无法找到该向量来解密该对象。
另外,是否可以说初始向量将作为明文保存在保存可序列化对象的文件中。但是这样的话文件不就被破坏了吗?
使用 CBC 模式的示例将非常有用。
I was reading this article about serialization.
It was the first time I saw encrypting a serialized object.
I'm trying to encrypt some serializable object and then save them into a file.
But the article's example uses ECB mode which is known to reveal informations about the encrypted plaintext. I was wondering, how is it possible to encrypt a serialized object
by using CBC instead of ECB mode?
In order to use CBC, an initial vector is needed. This vector must be saved with the serialized object, but if the vector gets encrypted then we can't find the vector in order to decrypt the object.
Also, is it possible to say that the initial vector will be saved as plaintext in the file where the serialiazable object is saved. But then wouldn't the file be destroyed?
An example using CBC mode would be very useful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一个不错的问答关于使用 3DES 这里。 IV 是密码/密钥的摘要。那里引用的解决方案可以通过适当的序列化机制来增强到 ByteArrayOutputStream 或直接到/来自 FileOutputStream。
(无论如何都不是专家,但已经指出了已经发生的事情......)
There's a decent SO question and answer about using 3DES here. The IV is a digest of the password/key. The solution cited there can be augmented with the appropriate serialization mechanics to a
ByteArrayOutputStream
or directly to/from aFileOutputStream
.(Not an expert by any means, but pointing out what's on SO already...)