-
Notifications
You must be signed in to change notification settings - Fork 994
Open
Labels
Description
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