टेक्स्ट और संग्रहण क्रम अलग समझें

RFC 9562 §4 में डिफ़ॉल्ट फ़ील्ड क्रम big-endian है, जब तक प्रोटोकॉल स्पष्ट रूप से कुछ और न बताए।

RFC 9562 §4

काल्पनिक UUID के पहले आठ बाइट RFC और डिफ़ॉल्ट .NET क्रम में; अंतिम आठ बाइट समान
दोहराए गए परिणामों का स्वयं बनाया चित्र। पहले 4, 2 और 2 बाइट के समूह अलग-अलग उलटते हैं; अंतिम आठ समान रहते हैं। यह डेटाबेस का स्क्रीनशॉट नहीं है।

.NET में उसी ID को वापस पढ़ें

5 अक्टूबर 2026 को .NET 10.0.11 में यह कोड चलाया। ToByteArray() की शुरुआत 33 22 11 00 55 44 77 46 है; ToByteArray(true) की शुरुआत 00 11 22 33 44 55 46 77 है। दोनों का अंत 88 99 aa bb cc dd ee ff है। डिफ़ॉल्ट ऐरे को डिफ़ॉल्ट कन्स्ट्रक्टर से पढ़ने पर मूल स्ट्रिंग मिलती है। true वाले ऐरे के लिए वही बाइट क्रम बताने वाला कन्स्ट्रक्टर इस्तेमाल किया। पूरे 16 बाइट उलटना इस उदाहरण के किसी भी परिणाम से मेल नहीं खाता।

$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

Moyoutil में क्या जाँच सकते हैं?

मौजूदा जनरेटर v4 स्ट्रिंग की सूची बनाता है और बड़े अक्षर या टेक्स्ट/JSON प्रदर्शन बदलता है। यह बाइनरी ऐरे निर्यात या GUID endianness रूपांतरण नहीं करता। एकीकरण परीक्षण के लिए स्ट्रिंग सहेजें और भेजने व पाने वाली API के बाइट नियम मिलाएँ। स्ट्रिंग, 16-बाइट लंबाई, पहले तीन समूह और अंतिम आठ बाइट क्रम से तुलना करें। मेल कराने के लिए बाइट उलटने से पहले API का अनुबंध जाँचना उचित है।

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

अक्सर पूछे जाने वाले प्रश्न

क्या हाइफ़न हटाने से 32 अक्षर 16-बाइट फ़ाइल बन जाते हैं?

नहीं। इस कोड में 32 अक्षरों का UTF-8 रूप 32 बाइट है; हर दो हेक्स अंक को एक बाइट मानने पर 16 बाइट मिलते हैं। हैश की तुलना से पहले भी इनपुट का रूप मिलाएँ।