Come eseguire la firma in-browser dei dati con Javascript usando HMAC-SHA512?

2

Il mio programma JavaScript sul lato client deve rendere i post HTTP su un servizio che richiede che i dati POST vengano firmati dal mio "segreto" privato in base al metodo HMAC-SHA512. Ho il "segreto", ma non riesco a trovare codice / libreria JavaScript per eseguire questa firma.

Qualcuno sa come farlo nel browser? Sto cercando di evitare di aggiungere la complessità dell'aggiunta di un componente lato server, che userebbe il pacchetto crypto Node.js, ad es. crypto.createHmac("sha512", api._apiSecret).update(queryString).digest("hex") .

    
posta user507 19.12.2016 - 22:23
fonte

1 risposta

2

Ci sono molte librerie di client side là fuori, che sono in grado di creare firme HMAC (google può aiutarti qui). Ad esempio jsSHA , che può anche essere trovato su cdnjs . Spiegazioni su come usare la libreria possono essere trovate sulla pagina di github.

Ma tieni presente che quando condividi la tua API segreta con il client, sia essa codificata nel tuo file javascript o con una richiesta al tuo server, il client può estrarre il segreto e usalo per altre richieste. Queste richieste potrebbero violare i termini di servizio del tuo fornitore o semplicemente utilizzare la tua quota. Per evitare questo abuso, devi creare l'hash o preformare l'intera richiesta sul lato server e condividere i risultati con il client.

    
risposta data 20.12.2016 - 04:01
fonte

Leggi altre domande sui tag