Base64 codifica di un hash SHA256

7

Attualmente sto leggendo le JWT e ho scritto qualcosa per crearle. Quando ho creato il mio JWT ho notato che la mia firma non veniva codificata correttamente.

Ad esempio, dato l'hash

9B2317C2C941A179130D0D28961AB542C88745658BE328F557422EA0AF8F60E8

Il mio codice produce

OUIyMzE3QzJDOTQxQTE3OTEzMEQwRDI4OTYxQUI1NDJDODg3NDU2NThCRTMyOEY1NTc0MjJFQTBBRjhGNjBFOA==

Quello che mi aspetto di ottenere è

myMXwslBoXkTDQ0olhq1QsiHRWWL4yj1V0IuoK+PYOg=

Perché gli hash codificati sono così diversi e cosa mi manca?

    
posta etchesketch 14.12.2016 - 20:31
fonte

2 risposte

10

Stai facendo una conversione da codifica esadecimale (o base16 se vuoi) a base64. Quindi sei codec64 che codifica i caratteri ASCII 9 (57), B (66) e 2 (50) dandoti OUIy .

Quello che dovresti fare è codificare in base64 i byte non elaborati . Quindi dovresti codificare 0x9B (155) e 0x23 (35) dandoti myM .

    
risposta data 14.12.2016 - 22:58
fonte
5

Questo dovrebbe fare;

echo 9B2317C2C941A179130D0D28961AB542C88745658BE328F557422EA0AF8F60E8 | xxd -r -p | base64

Output:

myMXwslBoXkTDQ0olhq1QsiHRWWL4yj1V0IuoK+PYOg=
    
risposta data 22.02.2017 - 07:45
fonte

Leggi altre domande sui tag