Avatar billede benneharli Juniormester
29. april 2015 - 22:35 Der er 8 kommentarer og
1 løsning

GUID/UUID fra Base64 string

Hejsa

Jeg forsøger at oversætte en Base64 representation af en GUID.

Jeg har strengen: FlK+A8mQRueRWPvyB6CYyw
Jeg ved at denne streng skal blive: 1652be03-c990-46e7-9158-fbf207a098cb

Denne side gør det korrekt:
http://www.fileformat.info/tool/guid-base64.htm

Når jeg prøver i C# får jeg dog en anden GUID ud af det.

Nogen bud på hvordan jeg korrekt implementerer FromBase64String her?
Avatar billede arne_v Ekspert
30. april 2015 - 03:29 #1

using System;

namespace E
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("1652be03-c990-46e7-9158-fbf207a098cb");
            string s = "FlK+A8mQRueRWPvyB6CYyw==";
            byte[] b = Convert.FromBase64String(s);
            // the tricky part
            Array.Reverse(b, 0, 4);
            Array.Reverse(b, 4, 2);
            Array.Reverse(b, 6, 2);
            //
            Guid id = new Guid(b);
            Console.WriteLine(id);
            Console.ReadKey();
        }
    }
}
Avatar billede benneharli Juniormester
30. april 2015 - 09:36 #2
Ja, det virker jo forrygende, så smid et svar... Tillægsspørgsmål: Hvad f¤%&#" sker der? Er den måde Java gør det på (det der er anvendt på siden jeg linkede til) anderledes end C#?

Så ikke din løsning noget sted på nettet :-$
Avatar billede clausc Nybegynder
30. april 2015 - 14:05 #3
For at få korrekt længde, så BURDE din Base64 være:
FlK+A8mQRueRWPvyB6CYyw==  (Bemærk de 2 styk '=' til sidst)

Ikke alle converters accepterer strenge med forkert længde.
Avatar billede benneharli Juniormester
30. april 2015 - 14:14 #4
Jo jo, så langt så godt... Men hvorfor alt det reverse? "The tricky part"
Avatar billede arne_v Ekspert
30. april 2015 - 15:12 #5
Grunden til de Reverse kald er uden tvivl et little vs big endian problem.
Avatar billede benneharli Juniormester
04. maj 2015 - 07:51 #6
Hvem opfandt dog også de indianere :-$

Smid et svar

PS: Bare ren interesse... Det lyder på din kommentar som om det er noget du har fundet et sted... Jeg søgte mig selv halvt ihjel - hvor plejer du at lede?
Avatar billede arne_v Ekspert
04. maj 2015 - 17:20 #7
Nej - jeg har ikke fundet det ved soegning.

Jeg udskriv det uden de reverse og sammenlignede med det oenskede og saa var det ret aabenlyst at der skulle reverses.
Avatar billede arne_v Ekspert
04. maj 2015 - 17:20 #8
og svar
Avatar billede benneharli Juniormester
04. maj 2015 - 17:33 #9
Hmm... Håber jeg når dertil på et tidspunkt :-) Tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester