Stavo pensando a come sto memorizzando le password nel mio database: stringhe SHA1 appropriatamente salate in un campo CHAR (40). Tuttavia, dal momento che i dati del carattere in là sono in realtà solo una rappresentazione esadecimale di un numero di 160 bit, ho pensato che sarebbe stato meglio memorizzarlo come BINARY (20).Memorizzazione di valori esadecimali come binari in MySQL
CREATE TABLE users (
password BINARY(20)
/* snip */
);
INSERT INTO users (password) VALUES (UNHEX(SHA1('mypassword'));
come la vedo io, uno dei vantaggi di questo approccio è che dimezza le dimensioni di quel campo, ma posso immaginare che probabilmente c'è anche alcuni aspetti negativi.
Qual è la tua opinione?
si sarebbe salvando solo pochi byte per la password. Ne vale la pena? – pavium
beh, questo è quello che mi sto chiedendo. I vantaggi potrebbero essere scarsi, ma quali sono i costi? – nickf
OK, sembra che ci sia un accordo generale, i benefici sono lievi e di nessuno hanno suggerito eventuali costi significativi. Se hai apportato la modifica, i backup futuri sarebbero compatibili con i backup precedenti? Qualche codice deve essere cambiato? – pavium