Wie man ein Byte-Array in C# in einen Hex-String und zurück umwandelt
Hallo zusammen! Ich bin ein Anfänger in C# und habe ein Problem bei der Arbeit mit Binärdaten. Ich muss ein Byte-Array (z.B. einen SHA256-Hash) in einer Textdatei speichern und später wieder einlesen. Mir ist klar, dass man die Bytes nicht einfach so speichern kann — es entstehen unleserliche Zeichen. Ich muss sie in einen String aus Hexadezimalzeichen umwandeln und beim Einlesen diesen String wieder in ein Byte-Array zurückverwandeln.
Ich habe es selbst versucht, aber mein Code funktioniert nicht richtig. Hier ist, was ich geschrieben habe:
byte[] data = { 0x0F, 0xBA, 0x01, 0xFF };
string hex = "";
foreach (byte b in data)
{
hex += b.ToString("X");
}
// Ergibt "FBA1FF" — ohne führende Nullen!
Console.WriteLine(hex);
Wenn ich versuche, diesen String zurückzulesen, kann ich nicht erkennen, wo ein Byte endet und das nächste beginnt. Zum Beispiel kann der String "FBA1FF" unterschiedlich interpretiert werden: {0xFB, 0xA1, 0xFF} oder {0x0F, 0xBA, 0x1F, 0xF} — das ist falsch.
Ich habe von BitConverter gehört, bin mir aber nicht sicher, ob das die richtige Lösung ist. Könnt ihr mir bitte zeigen, wie man Byte-Arrays korrekt in Hex-Strings umwandelt und wieder zurück? Vielen Dank im Voraus!