【问题标题】:C# NUnrar library (extracting password protected rar files without password)C# NUnrar 库(无密码解压受密码保护的 rar 文件)
【发布时间】:2012-04-15 08:33:44
【问题描述】:

我在 C# 中使用这个库来提取 RAR 文件。

http://nunrar.codeplex.com/

即使文件受密码保护,它也能提取文件吗?它甚至不要求输入密码。这怎么可能?

我正在使用 WinRar 创建 RAR 文件并为其设置密码。

【问题讨论】:

  • 显然它无法解密文件,考虑到该项目正在寻求“加密等复杂项目”的帮助。
  • 对,我也看到了这条评论:sharpcompress.codeplex.com/discussions/261996
  • 您确定文件受密码保护吗?
  • @w0lf 是的,我 100% 确定。奇怪的是,如果你只是用密码保护 ZIP 文件,它可以在不询问密码的情况下解压缩它。但是,如果您还在 ZIP 文件中加密文件名,则无法解压缩。

标签: c# rar winrar


【解决方案1】:

我是nunrar和https://sharpcompress.codeplex.com/的作者

我正在解密受密码保护的 rar 存档我的下一个项目,因为我认为我已经完成了(zip 文件模糊了我的记忆)。

正如另一条评论所说,我一直在寻求帮助,但希望我能尽快完成。

【讨论】:

【解决方案2】:

(2018 年底。)使用密码解压 RAR(4 或 5 格式)存档的解决方案: 安装 Nuget 包 7z.Libs (https://www.nuget.org/packages/7z.Libs/) 和 Squid-Box.SevenZipSharp (https://www.nuget.org/packages/Squid-Box.SevenZipSharp/)。 使用此代码:(编辑:纠错)

        public void Unpack()
        {
            var rawBytes = File.ReadAllBytes(".\\Some.rar");

            using (var stream = new MemoryStream(rawBytes, true))
            {
                // Toggle between the x86 and x64 bit dll
                var path = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, Environment.Is64BitProcess ? "x64" : "x86", "7z.dll");
                SevenZip.SevenZipBase.SetLibraryPath(path);

                using (var outMemStream = File.Create(".\\SomeSingleFile.txt"))
                {
                    var extractor = new SevenZipExtractor(stream, "passwordXXX");
                    var entry = extractor.ArchiveFileData.Single(info => false == info.IsDirectory);    
                    extractor.ExtractFile(entry.Index, outMemStream);                        
                }
            }
        }

【讨论】:

    猜你喜欢
    • 2020-09-03
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    相关资源
    最近更新 更多