Text und Speicherfolge unterscheiden

RFC 9562 §4 verwendet standardmäßig Big-Endian-Felder, sofern das Protokoll nichts ausdrücklich anderes vorgibt.

RFC 9562 §4

Erste acht Bytes einer fiktiven UUID in RFC- und .NET-Standardfolge; letzte acht Bytes unverändert
Eigene Darstellung reproduzierter Ausgaben. Die ersten Gruppen mit 4, 2 und 2 Bytes werden einzeln umgekehrt; die letzten acht bleiben gleich. Kein Datenbank-Screenshot.

Dieselbe ID in .NET hin und zurück

Wir führten den Code am 5. Oktober 2026 unter .NET 10.0.11 aus. ToByteArray() beginnt mit 33 22 11 00 55 44 77 46, ToByteArray(true) mit 00 11 22 33 44 55 46 77. Beide enden mit 88 99 aa bb cc dd ee ff. Der Standardkonstruktor stellt den Text aus dem Standardarray wieder her. Für das mit true erzeugte Array verwendeten wir den Konstruktor mit derselben expliziten Bytefolge. Die Umkehr aller 16 Bytes entspricht keiner Ausgabe dieses Beispiels.

$id = [guid]'00112233-4455-4677-8899-aabbccddeeff'
$bytes = $id.ToByteArray()
($bytes | ForEach-Object { $_.ToString('x2') }) -join ' '
# 33 22 11 00 55 44 77 46 88 99 aa bb cc dd ee ff
([guid]::new($bytes)).ToString()
# 00112233-4455-4677-8899-aabbccddeeff
$network = $id.ToByteArray($true)
([guid]::new($network, $true)).ToString()
# 00112233-4455-4677-8899-aabbccddeeff

Microsoft .NET 10: Guid.ToByteArray

Was Moyoutil prüfen kann

Der aktuelle Generator erstellt v4-Zeichenfolgenlisten und ändert Großschreibung oder Text-/JSON-Darstellung. Binäre Arrays und GUID-Endian-Konvertierung bietet er nicht an. Bewahren Sie Zeichenfolgen als Integrationstestdaten auf und gleichen Sie die Bytevorgaben beider APIs ab. Vergleichen Sie Text, 16-Byte-Länge, erste drei Gruppen und letzte acht Bytes. Prüfen Sie den API-Vertrag, bevor Sie Bytes zur erzwungenen Übereinstimmung umkehren.

const id = '00112233-4455-4677-8899-aabbccddeeff';
const hex = id.replaceAll('-', '');
const bytes = Uint8Array.from(hex.match(/../g), s => parseInt(s, 16));
console.log(new TextEncoder().encode(hex).length, bytes.length);
// 32 16

Häufig gestellte Fragen

Sind 32 Zeichen ohne Bindestriche eine 16-Byte-Datei?

Nein. Der Code erzeugt aus den 32 Zeichen mit UTF-8 32 Bytes; die Auswertung jedes Hexzeichenpaars ergibt 16 Bytes. Gleichen Sie auch vor Hashvergleichen die Eingabedarstellung ab.