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.

Acerca de base64.b64encode() y b64decode()

Así como cuando codifico el arreglo int16 de la siguiente manera:
base64.standard_b64encode(item)
donde el item es:

[-32167 25610 -18240 -4487 -14285 2804 17597 -24949 -12195 13875] <class 'numpy.ndarray'>

entonces obtengo el resultado así:

b'WYIKZMC4ee4zyPQKvUSLnl3QMzY=' <class 'bytes''>

luego hago un proceso inverso:

base64.standard_b64decode(b'WYIKZMC4ee4zyPQKvUSLnl3QMzY=')

el resultado es:

b'Y\x82\nd\xc0\xb8y\xee3\xc8\xf4\n\xbdD\x8b\x9e]\xd036' <class 'bytes'>

¿Por qué es así? ¿Por qué no es el mismo valor que el de ‘item’?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El resultado de decodificar la cadena codificada en base64 no es igual al valor original de “item” porque la codificación en base64 es una forma de compresión de datos que utiliza un conjunto de caracteres más grande para representar datos binarios de forma compacta. Durante el proceso de codificación, los datos binarios originales se convierten en una serie de caracteres ASCII que son más compactos que los datos originales. Cuando se decodifica la cadena codificada, se convierte nuevamente en su forma binaria original, pero esto puede no ser una representación exacta de los datos originales debido a la forma en que funciona el algoritmo de codificación. Además, puede haber alguna pérdida de precisión debido al rango limitado de valores que pueden ser representados por el arreglo original de int16.

Comments are closed.