Библиотека C # NUnrar (извлечение защищенных паролем rar-файлов без пароля) - PullRequest
2 голосов
/ 01 апреля 2012

Я использую эту библиотеку в C # для извлечения файлов RAR.

http://nunrar.codeplex.com/

Может ли он извлечь файл, даже если он защищен паролем? Он даже не спрашивает пароль. Как это возможно?

Я создаю RAR-файлы, используя WinRar, и добавляю к ним пароль.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Я являюсь автором nunrar и https://sharpcompress.codeplex.com/

Я делаю расшифровку защищенных паролем rar-архивов следующим своим делом, как я думал, что я уже это сделал (zip-файлы размыли мою память).

Как говорится в другом комментарии, я всегда ищу помощи, но, надеюсь, скоро это сделаю.

0 голосов
/ 06 декабря 2018

(Конец года 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 == nfo.IsDirectory);    
                    extractor.ExtractFile(entry.Index, outMemStream);                        
                }
            }
        }
...