当您确定标记序列不会显示在消息流中时,可以使用和流结束(EOS)标记。当您不能保证时,有两种选择:
- 创建一个由许多字节组成的更复杂的EOS标记。这很可能会证明不会像以前那样出现相同的问题,或者
- 在邮件的开头添加一个标头,该标头编码为完整的邮件提取读取多少位/字节。
通常,只要我事先知道要传输的信息,便会使用标头,并且仅在不知道字节流何时终止(例如动态压缩)时才依赖EOS标记。
进行嵌入时,您应该致力于:
- 得到你的二进制字符串
- 测量其长度
- 将该整数转换为固定大小的二进制文件,例如32位
- 将该位串附加到您的消息位串前面
- 将所有内容嵌入到您的封面媒体中
并提取:
- 提取前32位
- 将它们转换为整数以获取消息的位串长度
- 从索引32开始并提取必要的位数
- 转换回字节流并保存到文件
另外,您可以在标头中添加各种信息,例如原始文件的名称。只要所有内容都以某种方式编码,您以后就可以提取它。例如。
header = 4 bytes for the length of the message string + 1 byte for the number of characters in the filename + that many bytes for the filename



