我试图在谷歌周围找到一些关于 java 序列化算法的好的文档,有谁知道我在哪里可以找到更详细的信息?
谢谢 ;)
我问的原因是因为我想尝试从序列化的二进制 javaobject 在 php 中制作反序列化器。
我试图在谷歌周围找到一些关于 java 序列化算法的好的文档,有谁知道我在哪里可以找到更详细的信息?
谢谢 ;)
我问的原因是因为我想尝试从序列化的二进制 javaobject 在 php 中制作反序列化器。
在 JRE 之外解析 Java 序列化流实际上是不可能的。有些类有点调皮,错过了defaultWriteObject
在他们的自定义writeObject
方法中调用,这使得流无法解析。之后的数据defautlWriteObject
是自定义的,因此在不知道所涉及类的具体细节的情况下实际上是不可解析的。可能您最好的方法是启动一个 JRE(或者首先不使用 Java 序列化存储数据)。
对于算法本身,请查看 Java 源代码。
Java 序列化协议(格式)、API 和行为规范都可以从Java 对象序列化技术指南中获得。
你必须看到对象序列化流协议,并理解以下概念,
Stream Elements
Stream Protocol Versions
Grammar for the Stream Format
Rules of the Grammar
在此之前,您必须了解 TLV(类型长度值编码)如何读取十六进制值