确定rar文件是否受密码保护
Determine if rar file is password protected
我希望能够确定文件的开头部分(最好是第一个MB左右)是否是受密码保护的rar文件。我不仅需要知道它是否是rar文件,我还需要确保该文件受到密码保护。
这可能吗?我知道rar格式是一种专有格式,但这可能吗?
编辑:我想通过使用javascript或perl检查文件的内容来实现这一点。它不应该访问rar库。
第2版:到目前为止,至少有了一些一致性,我已经能够确定,如果不启用加密,第10个字节似乎总是设置为零。我还没有做足够的测试来确认它是否可靠,但尽管如此,这就是我看到的结果。
我的实验给了我以下子程序:
sub is_rarfile_protected {
my ($rar_filename) = @_;
open my $rar_fh, '<', $rar_filename or die $!, "'n";
sysread $rar_fh, my $mark, 25;
return ord (substr $mark, -1) & 0b100;
}
到目前为止对我有效。
遗憾的是,我没有安装Rar,所以我无法检查它是否适用于所有密码加密的Rar文件(包括多卷等)。
您可以随时尝试此
对于那些不能perlmonks的人:
回复:确定文件是否受密码保护
由rubasov:
如果你不想为每个扩展名实现特定于文件格式的测试,那么你可以窥探数据的随机性。任何精心设计的加密方案都会产生看起来随机的加密数据(以抵抗统计分析)。但如果加密设计不好,这对你没有多大帮助。
请注意,这种方法有严重的警告:如果您的数据可以是真实/伪随机或压缩数据,那么它看起来也会像一堆随机位,因此例如,您将无法区分简单的rar/zip文件和加密的rar/zip文件。(别忘了,外观简单的文档格式可以在内部使用压缩。)
对于具体的实现,请在CPAN上搜索卡方测试(我还没有看,但我几乎可以肯定你会找到一些实现),并尝试对它进行实验,看看它是否足以满足你的目的。
相关文章:
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- Navgoco不是一个影响密码保护页面的功能
- 为每个页面设置密码保护
- 如何使用密码保护某些HTML页面
- Nodejitsu:有没有一种方法可以对应用程序进行密码保护
- 使用jquery解析受密码保护的jsonurl
- 使用php进行密码保护重定向
- 有没有一种安全的方法可以将 React.js 与 Python Flask 后端用于多用户、受密码保护的站点
- GWT:登录到受密码保护的第三方网站
- 如何在javascript中创建受密码保护的应用程序
- 使用JavaScript(客户端)提取受密码保护的ZIP文件
- 如何防止子文件夹通过匿名 http-url-path 访问,尽管父文件夹上有受密码保护的 aspx.default 文件
- 如何在 JavaScript 中制作受密码保护的页面
- NodeJS网页抓取工具,用于受密码保护的网站
- 如何用密码保护表单中的任何字段(需要建议)
- 简单的JavaScript密码保护在移动平台上不起作用
- 在网页上设置可下载文件的密码保护
- 如何对本地存储数据进行密码保护
- 确定rar文件是否受密码保护
- 是否可以使用javascript读取受密码保护的excel文件