【发布时间】:2019-02-26 10:40:51
【问题描述】:
我制作了一个脚本,可以使用 JPEG 幻数从任何文件中提取 JPG(数据以 FFD8 开头,以 FFD9 结尾)。
但这还不够,因为许多带有 JPEG 幻数的数据段不是实际的 JPEG,只是其他随机数据位,如果您尝试将它们作为 JPEG 打开,则会引发错误。
可以进行哪些额外的字节检查来验证 JPEG 文件的有效性(每个 jpeg 中都会存在的标记)。
【问题讨论】:
-
如果你想做正确的验证工作,为什么不使用你最喜欢的图像加载器库或实用程序加载 JPEG?如果image-load函数调用成功,调用good;如果失败了,就说它坏了。
-
JFIF文件格式除了这些还有很多其他的标记,反正位置不严格,可能要看内容。只是谷歌它。但如果您不需要额外的性能,尝试使用现有库进行解码可能就足够了。
-
@JeremyFriesner 我的实用程序是基于浏览器的,看看:x0a.github.io/thumbdata3-viewer 虽然 img.onerror 可以肯定地确定图像的有效性,但对于可能包含 10000s 的 5gb 文件来说有点贵匹配段。所以如果我能找到一个好的二进制检查会产生奇迹。
标签: validation jpeg