C#NUnrar库(无密码提取密码保护的rar文件)

时间:2012-04-01 10:17:24

标签: c# rar winrar

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

http://nunrar.codeplex.com/

即使受密码保护,它是否能够提取文件?它甚至没有要求密码。怎么可能?

我正在使用WinRar创建RAR文件并在其上加密码。

2 个答案:

答案 0 :(得分:2)

我是nunrar和https://sharpcompress.codeplex.com/

的作者

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

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

答案 1 :(得分:0)

(到2018年年底。)使用密码解压缩RAR(4或5格式)档案的解决方案: 安装Nuget软件包7z.Lib(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 == nfo.IsDirectory);    
                    extractor.ExtractFile(entry.Index, outMemStream);                        
                }
            }
        }