我的输入中有很长的十六进制流,其中包含几个ASN.1消息,但是它们不在固定位置,可以从任何位置开始并且具有任意长度,而且它们之间的内容在长度和内容上都是随机的。 我已经能够解码每个字节并尝试捕获异常,如果解码失败,我将删除第一个字节,然后尝试第二个字节,依此类推。当我找到一条消息时,我将其解码,然后从剩余的底材开始重新开始,依此类推。 它可以工作,但是它是一个非常钝的解决方案,并且显然效率不高:对于长输入文件而言,它永远都需要花到最后。 是否有一种有效的方法来识别输入是否以ASN.1消息开头而不在每个字节处调用解码器?