Password zip is inconsisent
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 25/100
調査の方向性
提供されている CreateBackup メソッド、特に ZipOutputStream.Password と AESKeySize から始め、7zip を使って 98 文字と 99 文字のパスワードでの挙動を再現します。生成されたアーカイブの挙動を比較し、長いパスワードが機能すべきかどうかを判断します。挙動を再現でき、結果が修正されるか明確に文書化されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
Only passwords with length up to 98 seem to work, if i use 99 and i even copy/paste the password directly unzipping the archive using 7zip does not work. how come?
Seems a bit random and not sure if it would be safe for db backups in this case.
private static async Task CreateBackup(string zipFile, string pgDumpArgs)
{
ProcessStartInfo processInfo = new()
{
FileName = @"C:\Program Files\PostgreSQL\16\bin\pg_dump.exe",
Arguments = pgDumpArgs,
RedirectStandardOutput = true,
RedirectStandardError = true, // Capture error output
UseShellExecute = false,
CreateNoWindow = true
};
using Process process = Process.Start(processInfo);
if (process == null)
{
Console.WriteLine("Failed to start pg_dump process.");
return;
}
using (FileStream fsOut = File.Create(zipFile))
using (ZipOutputStream zipStream = new(fsOut))
{
zipStream.SetLevel(3); // 0-9, 9 being the highest level of compression
zipStream.Password = "z4KpjH+}H9H*g3K3Jb-9}M^jnMN^-!Zs+8UZ3sfxWg5T~@ZHJ:Eoz!AFNMwdf!g_2QpX#)}4WKwHLL%C?s1BB*wx%:cia0j=m7.W";
zipStream.UseZip64 = UseZip64.On; // Set to AsNeeded if you need Zip64
ZipEntry newEntry = new ZipEntry($"backup_{DateTime.Now:yyyyMMdd_HHmmss}.backup")
{
DateTime = DateTime.Now,
AESKeySize = 256 // AES-256 encryption
};
zipStream.PutNextEntry(newEntry);
var outputTask = process.StandardOutput.BaseStream.CopyToAsync(zipStream);
var errorTask = process.StandardError.ReadToEndAsync();
await Task.WhenAll(outputTask, errorTask);
zipStream.CloseEntry();
string errorOutput = await errorTask;
if (!string.IsNullOrEmpty(errorOutput))
{
Console.WriteLine($"pg_dump reported the following errors:\n{errorOutput}");
}
}
await process.WaitForExitAsync();
if (process.ExitCode != 0)
{
Console.WriteLine($"pg_dump failed with exit code {process.ExitCode}");
}
else
{
Console.WriteLine($"{zipFile} Database backup successfully completed.");
}
}
Reproduction Code
No response
Steps to reproduce
zip zip
Expected behavior
work
Operating System
Windows
Framework Version
Other
Tags
No response
Additional context
No response
- 主要言語
- C#
- スター
- 3.9k
- フォーク
- 1k
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
icsharpcode/SharpZipLib のほかの issue
-
*no response* bug
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
icsharpcode/SharpZipLib#905 · コメント 1 件 ·
-
bug bzip2
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
icsharpcode/SharpZipLib#904 ·
-
SetLevel in ZipFile オープンenhancement zip
難易度 2/5 1〜2日 初心者へのやさしさ 55/100
icsharpcode/SharpZipLib#903 ·
-
*no response* bug
難易度 4/5 3〜5日 初心者へのやさしさ 32/100
icsharpcode/SharpZipLib#901 · コメント 1 件 ·
-
*no response* bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
icsharpcode/SharpZipLib#894 · コメント 1 件 ·
icsharpcode/SharpZipLib の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
bug needs response
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Adyen/adyen-dotnet-api-library#1869 ·
-
Status: Needs Triage Type: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
bug effort:S P3
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
nightscout/nocturne#1602 ·