base64, um die guid zu base64

Ich bin derzeit forscht MongoDb als eine mögliche Datenbank option, und ich habe Probleme beim Umgang mit Guid-Serialisierung. Ich dachte zuerst vielleicht war das ein Fehler in der C# - Treiber ist die Serialisierung, aber jetzt denke ich, es ist wahrscheinlich eher eine naive Annahme meinerseits.

Mir zu helfen, konvertieren Sie das Bson-base64-Darstellungen hin und her zu Guids, ich schrieb ein paar kleine powershell-Funktionen, um zu helfen:

function base64toguid  
{  
    param($str);  
    $b = [System.Convert]::FromBase64String($str);
    $hex = "";
    foreach ($x in $b) {
        $hex += $x.ToString("x2");
    }
    $g = new-object -TypeName System.Guid -ArgumentList $hex;
    return $g;
}


function guidtobase64
{
    param($str);
    $g = new-object -TypeName System.Guid -ArgumentList $str;
    $b64 = [System.Convert]::ToBase64String($g.ToByteArray());
    return $b64;
}

Ein Beispiel für das Problem, das ich habe:

:) guidtobase64("53E32701-9863-DE11-BD66-0015178A5E3C");
ASfjU2OYEd69ZgAVF4pePA==
:) base64toguid("ASfjU2OYEd69ZgAVF4pePA==");

Guid
----
0127e353-6398-11de-bd66-0015178a5e3c

Und aus der mongo-shell:

:) mongo
MongoDB shell version: 1.6.5
connecting to: test
> b = new BinData(3, "ASfjU2OYEd69ZgAVF4pePA==");
BinData(3,"ASfjU2OYEd69ZgAVF4pePA==")
> b.hex();
127e353639811debd66015178a5e3c
>

So, wie Sie sehen können, ist die Guid bekomme ich wieder nicht mit dem übereinstimmt, was ich in. Meine Funktion hex() das gleiche zurückgeben. Vergleicht man das original zu dem Ergebnis:

53E32701-9863-DE11-BD66-0015178A5E3C

0127e353-6398-11de-bd66-0015178a5e3c

Können Sie sehen, dass die ersten 3 Sätze von hex-Paare sind vertauscht, aber die letzten 2 Sätze sind es nicht. Das macht mich denke, es ist etwas über die Guid.ToString (), dass ich nicht verstehe.

Kann jemand klärt mich auf bitte?

  • welche Sprache ist das?
  • Die Skripte in der Powershell. Der Grund, warum ich verwendet, die Zeichenfolge ist, weil ich nicht herausfinden konnte, wie übergeben Sie die byte-array mit " - ArgumentList.
  • Das ist es, was mir fehlte, die Magische Komma. Jeden Tag etwas neues lernen.
InformationsquelleAutor Eric Z Beard | 2011-03-02
Schreibe einen Kommentar