Initial BinaryConverter implementation.

This commit is contained in:
2026-05-21 09:40:15 +02:00
commit 4eb63f9096
10 changed files with 1181 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
# BinaryConverter
BinaryConverter ist eine C# Konsolenanwendung fuer Windows 11 und .NET Framework 4.8.1. Sie kodiert binaere Dateien in ein Base64-Textformat, das sich per Copy & Paste auf einen anderen Host uebertragen laesst, und dekodiert die Textdatei dort wieder in die binaere Originalform.
## Funktionen
- Streaming-Verarbeitung fuer grosse Dateien, auch mehrere hundert MB
- Base64-Ausgabe mit stabilen Zeilenlaengen fuer Copy & Paste
- Metadaten im Transferfile: Formatversion, Originaldateiname, Laenge, SHA-256
- Integritaetspruefung beim Decode ueber Dateigroesse und SHA-256
- Fortschrittsausgabe auf der Konsole
- Optionales Logfile
- Temporaere Ausgabedatei bei Encode und Decode, damit bei Fehlern keine kaputte Zieldatei stehen bleibt
## Build
Voraussetzungen auf Windows:
- Windows 11
- Visual Studio 2022 oder Build Tools for Visual Studio
- .NET Framework 4.8.1 Developer Pack / Targeting Pack
Build in einer Developer PowerShell:
```powershell
msbuild .\BinaryConverter.sln /p:Configuration=Release
```
Die EXE liegt danach hier:
```text
BinaryConverter\bin\Release\BinaryConverter.exe
```
## Nutzung
Encode:
```powershell
BinaryConverter.exe -Encode C:\temp\PowerShell.exe -Output Out.txt
```
Decode:
```powershell
BinaryConverter.exe -Decode Out.txt PowerShell.exe
```
Alternative Decode-Syntax:
```powershell
BinaryConverter.exe -Decode Out.txt -Output PowerShell.exe
```
Mit Logfile:
```powershell
BinaryConverter.exe -Encode C:\temp\PowerShell.exe -Output Out.txt -Log BinaryConverter.log
```
Existierende Ausgabedatei ueberschreiben:
```powershell
BinaryConverter.exe -Decode Out.txt PowerShell.exe -Force
```
## Optionen
| Option | Bedeutung |
| --- | --- |
| `-Encode <Datei>` | Binaerdatei in Transfer-Textdatei kodieren |
| `-Decode <Datei>` | Transfer-Textdatei zurueck in Binaerdatei dekodieren |
| `-Output <Datei>` | Ausgabepfad |
| `-Force` | Existierende Ausgabedatei ueberschreiben |
| `-Log <Datei>` | Zusaetzlich in eine Logdatei schreiben |
| `-NoProgress` | Periodische Fortschrittszeilen abschalten |
| `-Quiet` | Nur Fehler auf der Konsole ausgeben |
| `-Help` | Hilfe anzeigen |
## Transferablauf
1. Auf dem Quellhost `-Encode` ausfuehren.
2. Inhalt der erzeugten Textdatei auf den Zielhost kopieren.
3. Auf dem Zielhost den Text als Datei speichern, zum Beispiel `Out.txt`.
4. Auf dem Zielhost `-Decode Out.txt <Zieldatei>` ausfuehren.
5. Die Anwendung prueft Laenge und SHA-256 automatisch, sofern das Transferfile von BinaryConverter erzeugt wurde.
## Hinweise
Base64 vergroessert die Datenmenge um ungefaehr ein Drittel. Eine 300-MB-Datei erzeugt also grob eine 400-MB-Textdatei plus wenige Metadatenzeilen. Fuer sehr grosse Dateien ist es sinnvoll, das Copy & Paste ueber einen Editor oder ein Terminal zu machen, das grosse Textmengen stabil verarbeiten kann.