Pregunta

Tengo un poco de curiosidad sobre por qué uno querría usar la codificación hexadecimal sobre base64. Me parece que la base 64 es más eficiente. En particular, ¿por qué las bases de datos parecen usar siempre la codificación hexadecimal? ¿Es un problema histórico o me falta algo sobre la codificación hexadecimal?

¿Fue útil?

Solución

Debes ser un verdadero geek para leer BASE64 fuera de la pantalla.

En Oracle , cuando ejecuto HEXTORAW , puedo tener una idea de lo que hay en un campo RAW , pero no pude con BASE64 .

Como, cuando veo muchos 0x3F , sé que hay algo con la codificación.

E internamente, estos son solo bytes binarios, no hay otra necesidad de codificarlos sino mostrarlos a una persona al otro lado de la pantalla.

Otros consejos

Es un buen compromiso entre el uso eficiente del espacio y la legibilidad. Los patrones de bits se vuelven muy aparentes en el hexadecimal, mientras que otras bases no son tan claras.

que es más fácil de leer, 0x8080 o 32896? Yo diría que el valor hexadecimal es.

También tiene la buena propiedad de que cada dígito hexadecimal es igual a un mordisco (por lo tanto, cada par es igual a un byte).

Es mucho más fácil entender el hechizo en tu cabeza que la base 64.

En cuanto a la base de datos, tenga en cuenta que existe una diferencia entre cómo se muestran los datos y cómo se almacenan. Lo más probable es que simplemente muestre los datos como hexadecimales.

Base64 no funciona si desea usar los valores resultantes como nombres de archivo en Windows, porque base64 usa letras mayúsculas y minúsculas. Estoy seguro de que hay otros momentos en que no se puede usar por razones similares.

De acuerdo con otras respuestas con respecto a la legibilidad: los dígitos hexadecimales se alinean muy bien en bytes de 8 bits, mientras que los dígitos base64 '' no, y un dígito puede contener partes de dos bytes.

En el caso del almacenamiento de cadenas (con '' potencialmente '' codificación segura XML) podría ganar aún más eficiencia con ASCII 85, ya que es una hinchazón de 5/4 en lugar de 4/3 para base64.

Pero es aún más difícil "leer" entonces base64. Y no muchas aplicaciones lo admiten con tanta frecuencia que tiene que escribir sus propias clases / funciones para codificar y decodificar.

Me imagino que su base de datos realmente está almacenando los datos como binarios, pero el editor de consultas lo mostrará usando codificación hexadecimal. Esto es lo que hará el Analizador de consultas de SQL Server.

Supongo que es solo una cuestión de preferencia personal ... Hex es mucho más fácil para mí leer que algo en Base32 o Base64

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top