Java加密序列化消息

Posted

技术标签:

【中文标题】Java加密序列化消息【英文标题】:Java encrypt serialized messages 【发布时间】:2021-08-07 16:04:39 【问题描述】:

我试图加密我系统中参与者之间的通信。我们想加密多个 java 类,所以我们决定在加密之前对它们进行序列化 但是,在我们的接收者中解密时,无法知道我们需要将解密数据反序列化到哪个对象。有没有一种方法可以在不匹配字符串的情况下查看序列化数据的类。

【问题讨论】:

所以我们决定在加密之前对它们进行序列化 - 你是怎么做到的? java通过例如在序列化中烘焙ObjectOutputStream(希望不是,那个不是很好),通过杰克逊,gson,...哪一个? 我们使用这里引用的akka​​序列化:doc.akka.io/docs/akka/2.5.32//serialization.html 【参考方案1】:

正如 akka 文档所述,您可以指定一个通用超类。

如果此处不适合,请将所有通信封装到单个“信封”类中,然后您始终知道要反序列化为的类型:信封。

例如如果你有时发送一个 j.l.String 对象,有时发送一个 com.foo.dirac.coolproject.Matrix 类,是的,现在你不知道要反序列化成什么。要解决这个问题,请创建 com.foo.dirac.coolproject.Envelope,并将您发送的任何内容“包装”到其中一个中,然后始终反序列化为一个 Envelope。

【讨论】:

以上是关于Java加密序列化消息的主要内容,如果未能解决你的问题,请参考以下文章

java加密算法入门-算法概念及单向加密

Java Card Applet 在尝试加密消息时返回 6f00

password学4——Java 加密解密之消息摘要算法(MD5 SHA MAC)

Java加密技术—— HMACSHA1 加密算法

Java开发必须掌握的5种加密策略

有没有一种简单的方法来加密 java 对象?