Convertire un Guid in Base64 in C#
Un esempio C# che mostra come è possibile convertire un tipo Guid in una stringa di caratteri in Base 64
da questo risultato
C#
Guid g = Guid.NewGuid();
string s = Convert.ToBase64String(g.ToByteArray()).TrimEnd('=');
Console.WriteLine($"{s} len {s.Length}");
Text
506IKJbHTEysSgqVJTUFIA len 22
Con .TrimEnd('=') rimuovo i 2 uguali finali che non cambiano mai.
Questo perchè Guid occupa 16 bytes (1 bytes = 8 bit) convertito in Base 64, dove per rappresentare un carattere servono 6 bits (2 ^ 6 = 64 possibili valori da 0 a 63), quindi il valore 22 è il risultato del calcolo 8 bits * 16 bytes = 128 bits / 6 bits = 21,3333....
Ovvero per rappresentare 16 byte in notazione Base 64 servono 22 caratteri.
Un Guid empty, vuoto {00000000-0000-0000-0000-000000000000}, da questo risultatoQuesto perchè Guid occupa 16 bytes (1 bytes = 8 bit) convertito in Base 64, dove per rappresentare un carattere servono 6 bits (2 ^ 6 = 64 possibili valori da 0 a 63), quindi il valore 22 è il risultato del calcolo 8 bits * 16 bytes = 128 bits / 6 bits = 21,3333....
Ovvero per rappresentare 16 byte in notazione Base 64 servono 22 caratteri.
Text
AAAAAAAAAAAAAAAAAAAAAA len 22