SevenZSharp Декодировать с паролем - PullRequest
1 голос
/ 08 ноября 2011

Я работаю с SevenZSharp из здесь

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

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

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

Ответы [ 2 ]

2 голосов
/ 24 июня 2012

Чтобы использовать «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
1 голос
/ 08 ноября 2011

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

Вот еще кое-что, что может помочь вам из codeplex .Кажется, у него есть интерфейс под названием 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.

...