¿Cómo realizar la firma de datos en el navegador con Javascript utilizando HMAC-SHA512?

2

El programa JavaScript de mi lado del cliente necesita realizar publicaciones HTTP en un servicio que requiera que los datos POST estén firmados por mi "secreto" privado de acuerdo con el método HMAC-SHA512. Tengo el "secreto", pero no puedo encontrar el código / biblioteca de JavaScript para realizar esta firma.

¿Alguien sabe cómo lograr esto en el navegador? Estoy tratando de evitar agregar la complejidad de agregar un componente del lado del servidor, que usaría el paquete criptográfico Node.js, por ejemplo. crypto.createHmac("sha512", api._apiSecret).update(queryString).digest("hex") .

    
pregunta user507 19.12.2016 - 22:23
fuente

1 respuesta

2

Hay muchas bibliotecas del lado del cliente, que son capaces de crear firmas HMAC (Google puede ayudarlo aquí). Por ejemplo, jsSHA , que también se puede encontrar en cdnjs . Las explicaciones sobre cómo usar la biblioteca se pueden encontrar en la página de github.

Pero tenga en cuenta que cuando comparte su API en secreto con el cliente, ya sea codificado en su archivo javascript o con una solicitud a su servidor, el cliente puede extraer el secreto y Úsalo para otras peticiones. Esta solicitud podría violar los términos de servicio de su proveedor o simplemente agotar su cuota. Para evitar este abuso, debe crear el hash o realizar la solicitud completa en el lado del servidor y compartir los resultados con el cliente.

    
respondido por el 125_m_125 20.12.2016 - 04:01
fuente

Lea otras preguntas en las etiquetas