Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

331
Vistas
Crear carga útil JWT comprimida en JavaScript

Tengo una función que analiza una carga útil JWT comprimida en JSON. Tiene sentido para mí la forma en que funciona la función. Quiero crear una función que pueda hacer exactamente lo contrario: tomar un objeto JSON y convertirlo en una carga JWT COMPRIMIDA .

La función que analiza y descomprime:

 function parseJwtPayload(payload) { const buffer = Buffer.from(payload, "base64"); const payloadJson = zlib.inflateRawSync(buffer); return JSON.parse(payloadJson); }

... genera el JSON.

... ingresa el JSON. Mi intento de una función que crea una carga útil y la comprime:

 function makeJwtPayload(json) { // Where json is a String from JSON.stringify(). const buffer = Buffer.from(json, 'utf8'); var payload = zlib.deflateRawSync(buffer).toString('base64'); payload = payload.replace(/=+$/, ''); payload = payload.replace(/\+/g, '-'); payload = payload.replace(/\//g, '_'); return payload; }

Ahora esta función FUNCIONA, porque la cadena codificada y comprimida se puede usar en la función original y descodificarse y seguirá generando el mismo objeto JSON. Pero cuando se vuelve a codificar, la cadena Base64 se ve diferente. Es más largo que el original y solo algunos personajes se mantienen consistentes.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si puede descomprimir y obtener exactamente la carga útil original, entonces no tiene ningún problema . Nunca hay una garantía de que descomprimir-comprimir le dará lo mismo. La única garantía es que compress-decompress te dará lo mismo.

Hay muchas formas de comprimir los mismos datos, y el mismo código de compresión con diferentes configuraciones, diferentes versiones del código de compresión con las mismas configuraciones, o simplemente un código de compresión diferente, todos pueden dar una salida comprimida diferente para los mismos datos. No se sabe qué versión de qué código de compresión con qué configuración hizo lo que recibió, y es poco probable que pueda reconstruirlo exactamente. Y no hay razón ni necesidad de hacerlo.

Si desea intentar comprimirlo un poco más, configure la opción de level de deflateRawSync en 9 .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda