【发布时间】:2013-01-04 18:19:05
【问题描述】:
是否有任何编程方式可以安全地检查 epub 文件是否受 DRM 保护(加密)?
我发现META-INF目录下可能有一个rights.xml和一个encryption.xml。
这些文件中的任何一个或两个都存在是否意味着内容已加密,如果不存在,是否有其他方法可以检查?
(需要说明的是,我根本不想使用 DRM 阅读 ePub,我只想检查它们是否被加密。)
【问题讨论】:
是否有任何编程方式可以安全地检查 epub 文件是否受 DRM 保护(加密)?
我发现META-INF目录下可能有一个rights.xml和一个encryption.xml。
这些文件中的任何一个或两个都存在是否意味着内容已加密,如果不存在,是否有其他方法可以检查?
(需要说明的是,我根本不想使用 DRM 阅读 ePub,我只想检查它们是否被加密。)
【问题讨论】:
FWIW 维基百科 epub 文章状态
如果存在,DRMed EPUB 文件必须在 ZIP 容器的根级别的 META-INF 目录中包含一个名为 rights.xml 的文件。
从 v1.0 开始的 epubcheck 被报告为通过 encryption.xml 的存在来检测 DRM 保护并报告错误。 epub3 spec 说
META-INF 目录中的可选 encryption.xml 文件 容器文件系统的根级别包含所有加密 有关容器内容的信息。这个文件是一个 XML 根元素为加密的文档。加密元素 包含类型为 EncryptedKey 和 EncryptedData 的子元素 由 [XML ENC 核心] 定义。每个 EncryptedData 元素描述了如何 容器内的一个或多个文件被加密。 因此,如果 容器内的任何资源都是加密的,encryption.xml 必须是 present 表示资源已加密并提供 有关如何加密的信息。
EPUB3 在 rights.xml、其含义以及它是否对 DRM 文件是强制性的方面含糊不清,因此最好不要依赖它。
【讨论】:
encryption.xml 中列出。因此,可以在无 DRM 的 EPUB 文件中找到encryption.xml。这使得有必要解析 XML 文件并检查是否有任何 EncryptionMethod 元素具有不是 http://www.idpf.org/2008/embedding 的 Algorithm 属性