测试序列化编码

Posted

技术标签:

【中文标题】测试序列化编码【英文标题】:Test serialization encoding 【发布时间】:2010-09-05 16:19:41 【问题描述】:

验证/测试文本字符串是否被序列化为具有特定编码的字节数组的最佳方法是什么?

在我的例子中,我想验证一个 XML 结构是否被序列化为一个字节数组,该字节数组具有可变字符长度的 UTF-8 编码。例如,我目前的丑陋程序是在序列化之前将一个已知需要两个字节的字符注入到结构中,然后用 ASCII 字符替换两个字节的字符并比较序列化的数组长度。这应该会产生两个序列化数组,其中包含两字节字符的数组的长度应该是 +1。

如果解决方案对 Java 来说很优雅的话。 我想不出任何优雅的方式来寻找字节数组中的字节序列。 (可用于寻找表示所需字符的 UTF-8 表示的已知字节序列。)

【问题讨论】:

【参考方案1】:

也许您可以使用已知编码反序列化字节数组,并确保 (a) 它不会引发任何异常,以及 (b) 反序列化为原始字符串。从您对场景的描述看来,您可能没有现成的原始字符串。有没有办法创建它?

【讨论】:

【参考方案2】:

这很好。 没错,我没有原始字符串,因为我正在测试一个将 XML 文档创建为字节数组的模块。我没有考虑反序列化为具有预期编码的字符串。这样就可以了。

【讨论】:

以上是关于测试序列化编码的主要内容,如果未能解决你的问题,请参考以下文章

思科产品中存在严重硬编码密码漏洞和Java反序列化漏洞

使用不同编码编码的两个不同字符串可以具有相同的字节序列吗?

python接口测试之序列化与反序列化

接口测试基础三-Python序列化和反序列化

实战Redis序列化性能测试(Kryo和字符串)

Python 接口测试