我试图在谷歌周围找到一些关于 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(类型长度值编码)如何读取十六进制值