es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cifrado Base64 de los problemas con el signo porcentaje y el signo igual.

Encripto la misma cadena tanto en el lado del web api (.net core) como en el lado de TypeScript.

Mi cadena: /nombreDeEmpresa/idDeEmpresa

Codificada por el web api: /UVJPTEVTIGluYw==/OTA=/

Codificada por el lado del cliente: /UVJPTEVTIGluYw%3D%3D/OTA%3D/

Entonces, estas cadenas no coinciden. ¿Cuál es la razón de la diferencia entre el signo de igual y el porcentaje? ¿Cómo puedo solucionar este problema?

Utilicé;

btoa en el lado del cliente

var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
  return System.Convert.ToBase64String(plainTextBytes);

en el lado del web api.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La diferencia entre el signo igual y el signo de porcentaje es que el signo de porcentaje se utiliza para la codificación de URL, mientras que el signo igual se utiliza como un caracter de relleno en la codificación Base64.

    Para superar este problema, puedes utilizar la función encodeURIComponent en el lado del cliente para codificar correctamente la cadena antes de codificarla en Base64. Esto resultará en una cadena codificada en Base64 segura para URLs que coincide con la cadena codificada en la API web. Alternativamente, puedes utilizar un esquema de codificación diferente que sea compatible tanto con el lado del cliente como con la API web, como la codificación Base64 segura para URLs.

Comments are closed.