it-swarm.com.de

Base64-Codierung eines SHA256-Hash

Ich lese gerade über JWTs und habe etwas geschrieben, um sie zu erstellen. Als ich mein JWT erstellte, bemerkte ich, dass meine Signatur nicht richtig codiert wurde.

Zum Beispiel angesichts des Hash

9B2317C2C941A179130D0D28961AB542C88745658BE328F557422EA0AF8F60E8

Mein Code produziert

OUIyMzE3QzJDOTQxQTE3OTEzMEQwRDI4OTYxQUI1NDJDODg3NDU2NThCRTMyOEY1NTc0MjJFQTBBRjhGNjBFOA==

Was ich erwarte, ist

myMXwslBoXkTDQ0olhq1QsiHRWWL4yj1V0IuoK+PYOg=

Warum sind codierte Hashes so unterschiedlich und was fehlt mir?

10
etchesketch

Sie führen eine Konvertierung von Hex-Codierung (oder Base16, wenn Sie möchten) zu Base64 durch. Sie codieren also base64 die ASCII Zeichen 9 (57), B (66) und 2 (50) gibt dir OUIy.

Was Sie tun sollten, ist die Base64-Codierung die Rohbytes. Sie sollten also 0x9B (155) und 0x23 (35) gibt dir myM.

13
Anders

Dies sollte reichen;

echo 9B2317C2C941A179130D0D28961AB542C88745658BE328F557422EA0AF8F60E8 | xxd -r -p | base64

Ausgabe:

myMXwslBoXkTDQ0olhq1QsiHRWWL4yj1V0IuoK+PYOg=
8
Akash Mehta