如何检查ePub文件是否受DRM保护?

Mar*_*cze 5 drm epub

是否有任何编程方式来安全地检查epub文件是否受DRM保护(加​​密)?

我发现META-INF目录中可能有一个rights.xml和一个encryption.xml.这些文件中是否存在任何一个或两个文件是否意味着内容是加密的,如果没有,是否还有其他方法可以检查?
(要明确的是,我根本不想阅读带有DRM的ePub,我只想检查它们是否加密.)

小智 5

FWIW维基百科的epub文章指出

如果存在,DRMed EPUB文件必须在ZIP容器的根级别的META-INF目录中包含名为rights.xml的文件.

据报道,v1.0的epubcheck通过encryption.xml的存在来检测DRM保护并报告错误.该EPUB3规范说

容器文件系统根级别的META-INF目录中的可选encryption.xml文件包含有关容器内容的所有加密信息.此文件是一个XML文档,其根元素是加密的.加密元素包含由[XML ENC Core]定义的EncryptedKey和EncryptedData类型的子元素.每个EncryptedData元素都描述了容器中的一个或多个文件是如何加密的.因此,如果容器中的任何资源都已加密,则必须存在encryption.xml以指示资源已加密并提供有关如何加密的信息.

EPUB3在rights.xml上是模糊的,它的含义以及它是否对DRM文件是强制性的,因此最好不要依赖它.

  • EPUB3有一个[文件混淆功能](http://www.idpf.org/epub/30/spec/epub30-ocf.html#fobfus-specifying),它不是DRM,但也列在`encryption.xml`中.因此,可以在无DRM的EPUB文件中找到`encryption.xml`.这使得有必要解析XML文件并检查是否有任何`EncryptionMethod`元素的`Algorithm`属性不是`http:// www.idpf.org/2008/embedding` (2认同)