Estaba pensando en cómo estoy almacenando contraseñas en mi base de datos: cadenas SHA1 apropiadamente saladas en un campo CHAR (40). Sin embargo, dado que los datos de los caracteres allí son en realidad solo una representación hexadecimal de un número de 160 bits, pensé que sería mejor almacenarlo como BINARIO (20).Almacenando valores hexadecimales como binarios en MySQL
CREATE TABLE users (
password BINARY(20)
/* snip */
);
INSERT INTO users (password) VALUES (UNHEX(SHA1('mypassword'));
mi punto de vista, una ventaja de este enfoque es que se reduce a la mitad el tamaño de ese campo, pero puedo imaginar que probablemente hay algunas desventajas también.
¿Cuál es su opinión?
Solo estarías guardando algunos bytes por contraseña. ¿Vale la pena? – pavium
bueno, eso es lo que me pregunto. Los beneficios pueden ser escasos, pero ¿cuáles son los costos? – nickf
OK, parece que hay un acuerdo general, los beneficios son mínimos y nadie sugirió ningún costo significativo. Si realizó el cambio, ¿las copias de seguridad futuras serían compatibles con las copias de seguridad anteriores? ¿Habría que cambiar algún código? – pavium