Pergunta

Estou um pouco curioso para saber por que alguém iria querer usar hex codificação sobre base64. Parece-me que a base 64 é mais eficiente. Em particular, por que é que as bases de dados parecem usar sempre a codificação hexadecimal? Trata-se de uma questão histórica, ou estou faltando alguma coisa sobre a codificação de hex?

Foi útil?

Solução

Você deve ser um verdadeiro geek para ler BASE64 fora da tela.

Em Oracle, quando eu corro HEXTORAW, posso ter uma idéia do que está em um campo RAW, mas eu não podia com BASE64.

Como, quando eu ver muitas 0x3F de, eu sei de alguma coisa com a codificação.

E internamente, estes são apenas bytes binários, não há outra necessidade de codificá-los, mas para mostrar a uma pessoa do outro lado da tela.

Outras dicas

É um bom compromisso entre o uso eficiente do espaço e legibilidade. padrões de bits tornam-se muito aparente em hexadecimal, enquanto outras bases não são tão claras.

que é mais fácil de ler, 0x8080 ou 32896? Eu diria que o valor hexadecimal é.

Ele também tem a boa propriedade de cada dígito hexadecimal sendo igual a uma mordidela (portanto, cada par igual a um byte).

É muito mais fácil fazer o sentido de hex em sua cabeça do que a base 64.

Quanto ao banco de dados, bem ter em mente que há uma diferença entre a forma como os dados são exibidos e como ele é armazenado. É mais provável que simplesmente exibir os dados como hex.

Base64 não funciona se você quiser usar os valores resultantes como nomes de arquivos no Windows, porque base64 usa tanto maiúsculas e minúsculas. Estou certo de que há outros momentos em que não pode ser usado por razões semelhantes.

Concordo com outros respostas sobre a legibilidade -. Dígitos hexadecimais alinhar muito bem em bytes de 8 bits, enquanto base64 "dígitos" não, e um dígito pode conter partes de dois bytes

No caso de armazenamento string (com "potencialmente" XML codificação segura) o seu poderia ganhar ainda mais eficiência com ASCII 85, pois é um 5/4 inchaço em vez de 4/3 para base64.

Mas é ainda mais difícil de "ler", em seguida, base64. E não muitas aplicações apoiá-lo tantas vezes você tem que escrever suas classes próprias / funções para fazer a codificação e decodificação.

Eu imagino o seu banco de dados é realmente armazenar os dados como binário, mas o editor de consulta vai mostrá-lo usando a codificação hexadecimal. Isto é o que SQL Server Query Analyzer vai fazer.

Eu acho que é apenas uma questão de preferência pessoal ... Hex é de longe mais fácil para eu ler, em seguida, algo em Base32 ou Base64

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top