Domanda

Sono un po 'curioso di sapere perché si vorrebbe usare la codifica esadecimale su base64. Mi sembra che la base 64 sia più efficiente. In particolare, perché i database sembrano usare sempre la codifica esadecimale? È un problema storico o mi manca qualcosa sulla codifica esadecimale?

È stato utile?

Soluzione

Devi essere un vero geek per leggere BASE64 dallo schermo.

In Oracle , quando eseguo HEXTORAW , posso avere un'idea di cosa si trova in un campo RAW , ma non potrei BASE64 .

Ad esempio, quando vedo molti 0x3F , so che c'è qualcosa con la codifica.

E internamente, questi sono solo byte binari, non c'è altro bisogno di codificarli ma di mostrarli a una persona dall'altra parte dello schermo.

Altri suggerimenti

È un buon compromesso tra utilizzo efficiente dello spazio e leggibilità. I modelli di bit diventano molto evidenti in esadecimale, mentre altre basi non sono così chiare.

quale è più facile da leggere, 0x8080 o 32896? Direi che il valore esadecimale è.

Ha anche la bella proprietà di ogni cifra esadecimale uguale a un nibble (quindi ogni coppia uguale a un byte).

È molto più facile dare un senso all'esagono nella tua testa rispetto alla base 64.

Per quanto riguarda il database, tieni presente che esiste una differenza tra la modalità di visualizzazione dei dati e la modalità di archiviazione. Molto probabilmente sta semplicemente visualizzando i dati come esadecimali.

Base64 non funziona se si desidera utilizzare i valori risultanti come nomi di file su Windows, poiché base64 utilizza sia lettere maiuscole che minuscole. Sono sicuro che ci sono altre volte in cui non può essere utilizzato per ragioni simili.

Concorda con altre risposte in merito alla leggibilità: le cifre esadecimali si allineano perfettamente su byte a 8 bit, mentre base64 "cifre". no, e una cifra può contenere parti di due byte.

Nel caso di archiviazione di stringhe (con la "codifica sicura" potenzialmente "XML") potresti ottenere ancora più efficienza con ASCII 85 in quanto è un gonfiamento 5/4 anziché 4/3 per base64.

Ma è ancora più difficile " leggi " quindi base64. E non molte applicazioni lo supportano così spesso che devi scrivere le tue classi / funzioni per eseguire la codifica e la decodifica.

Immagino che il tuo database stia davvero archiviando i dati come binari, ma l'editor di query lo mostrerà usando la codifica esadecimale. Questo è ciò che farà SQL Server Query Analyzer.

Immagino sia solo una questione di preferenze personali ... Hex è di gran lunga più facile per me leggere qualcosa in Base32 o Base64

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top