Ich habe, was ich dachte, war eine ziemlich einfache Frage. Ich verwende diesen Code ein SHA1 UUID in Golang zu generieren:Generieren der gleichen SHA1 UUID in Golang und Javascript
namespace := uuid.Parse("b9cfdb9d-f741-4e1f-89ae-fac6b2a5d740")
sha := uuid.NewSHA1(namespace, []byte("something"))
fmt.Println(sha.String())
Jetzt möchte ich die gleiche UUID in JavaScript generieren, und ich dachte, es so etwas wie das so einfach wäre:
var hash = CryptoJS.SHA1("b9cfdb9d-f741-4e1f-89ae-fac6b2a5d740" + "something")
// chomp the hash into a UUID string
Allerdings stoße ich auf ernsthafte Probleme. Es scheint, dass die uuid.Parse
-Funktion in Golang this parsing function läuft, die den Namespace in ein 16-Byte-Array konvertiert, also obwohl ich den gleichen SHA1-Algorithmus in Javascript verwende, bekomme ich nicht die gleiche Ausgabe.
Ich habe mich damit beschäftigt, das gleiche in JS zu tun, aber ich bin ratlos.
Irgendwelche intelligenten Krypto Leute hier, die mir helfen können?
Entschuldigung, nur ein Ausschnitt hinzugefügt. – Ronze
Können Sie beide Ergebnisse anzeigen? –
@ArtjomB. Ich habe die Bedeutung von "Parsing" einer UUID untersucht. Es scheint, dass es die Bindestriche entfernt, die Werte konvertiert und ein Byte-Array erzeugt. Ronze Ich denke, du könntest versuchen, die Hashes zu entfernen, hexadecodieren und dann SHA1, aber ich bin mir nicht sicher. –