Je pensais à la façon dont je stocke les mots de passe dans ma base de données : des chaînes SHA1 salées de façon appropriée dans un champ CHAR(40). Cependant, étant donné que les données de caractère dans ce champ ne sont en fait qu'une représentation hexadécimale d'un nombre de 160 bits, j'ai pensé qu'il serait préférable de les stocker en tant que BINARY(20).
CREATE TABLE users (
password BINARY(20)
/* snip */
);
INSERT INTO users (password) VALUES (UNHEX(SHA1('mypassword'));
De mon point de vue, l'un des avantages de cette approche est qu'elle réduit de moitié la taille de ce champ, mais j'imagine qu'il y a probablement aussi des inconvénients.
Quel est votre avis ?