Bedakan teks dari urutan penyimpanan

RFC 9562 §4 memakai field big-endian secara default, kecuali protokol menetapkan aturan lain secara eksplisit.

RFC 9562 §4

Delapan byte awal UUID fiktif dalam urutan RFC dan .NET default; delapan byte akhir sama
Diagram buatan sendiri dari hasil yang direproduksi. Kelompok awal 4, 2, dan 2 byte dibalik masing-masing; delapan byte akhir tetap. Bukan tangkapan layar basis data.

Baca kembali ID yang sama di .NET

Kami menjalankan kode pada .NET 10.0.11 tanggal 5 Oktober 2026. ToByteArray() dimulai dengan 33 22 11 00 55 44 77 46; ToByteArray(true), dengan 00 11 22 33 44 55 46 77. Keduanya berakhir dengan 88 99 aa bb cc dd ee ff. Konstruktor default memulihkan string dari array default. Untuk array dengan true, kami memakai konstruktor dengan urutan eksplisit yang sama. Membalik seluruh 16 byte tidak cocok dengan kedua hasil ini.

$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

Apa yang dapat diperiksa di Moyoutil?

Generator saat ini membuat daftar string v4 serta mengubah huruf besar atau tampilan teks/JSON. Ekspor array biner dan konversi endianness GUID tidak tersedia. Simpan string sebagai data uji integrasi dan samakan aturan byte API pengirim dan penerima. Bandingkan string, panjang 16 byte, tiga kelompok awal, lalu delapan byte akhir. Periksa kontrak API sebelum membalik byte untuk memaksakan kecocokan.

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

Pertanyaan yang Sering Diajukan

Apakah 32 karakter tanpa tanda hubung merupakan file 16 byte?

Tidak. Dalam kode, UTF-8 menghasilkan 32 byte dari karakter tersebut; membaca setiap pasangan digit heksadesimal menghasilkan 16 byte. Samakan representasi input sebelum membandingkan hash juga.