SevenZSharp Декодировать с паролем

Я работаю с SevenZSharp отсюда

для декодирования файла я использую:

CompressionEngine.Current.Decoder.DecodeIntoDirectory(@"D:\target\host_update.7z", @"D:\target");

Но у меня нет информации, как расшифровать файл.7z с паролем!? Пожалуйста, помогите мне. Спасибо

2 ответа

Использовать "SevenZipSharp", который поддерживает пароли и широкий спектр форматов...

Импортируйте SevenZipSharp.dll в.Net ссылки на проекты...

Поместите "7zx64.dll" и "7z.dll" в каталог...

Затем используйте этот код для проверки пропуска и извлечения, если правильно.

код

Imports SevenZip
Public Class FrmMain
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Btn1.Click

    ''Call to set DLL depending on processor type''
    If Environment.Is64BitProcess Then
        SevenZip.SevenZipCompressor.SetLibraryPath("7zx64.dll")
    Else
        SevenZip.SevenZipCompressor.SetLibraryPath("7z.dll")
    End If

    ''Set Destination of extraction''
    Dim DestDir = Application.StartupPath

    Try
        ''Check file with password''
        Dim Ext As New SevenZipExtractor(Tb1.Text, Tb2.Text)

        If Ext.Check() Then
            ''Extract files to destination''
            Ext.BeginExtractArchive(DestDir)
        End If

    Catch ex As Exception
        MessageBox.Show(ex.ToString())
    End Try

End Sub
End Class

Судя по исходному коду SevenZSharp, он не поддерживает файлы, защищенные паролем.

Вот еще кое-что, что может помочь вам из кодекса. Похоже, что интерфейс называется ICryptoGetTextPassword что вы могли бы использовать, если 7z защищен паролем.

редактировать

Если немного подробнее взглянуть на SevenZipSharp, кажется, что он должен поддерживать защищенные паролем архивы, соответствующие странице их проекта ( http://sevenzipsharp.codeplex.com/):

  • Шифрование и пароли поддерживаются.

Вам нужно скачать последний код из Codeplex и собрать его самостоятельно, в нем у вас будет класс под названием SevenZipExtractor где у вас есть следующий конструктор:

/// <summary>
/// Initializes a new instance of SevenZipExtractor class.
/// </summary>
/// <param name="archiveFullName">The archive full file name.</param>
/// <param name="password">Password for an encrypted archive.</param>
public SevenZipExtractor(string archiveFullName, string password)
    : base(password)
{
    Init(archiveFullName);
}

Обратите внимание, что это не то же самое, что Seven7Sharp, это SevenZipSharp, но он работает с 7z,

Другие вопросы по тегам