Les meilleures pratiques pour le stockage efficace de hachages md5 dans mysql
Possible les types de champ:
BINARY(16)
CHAR(32)
BIGINT + BIGINT
Comment puis-je décider laquelle utiliser?
- Un hachage MD5 est généralement exprimée en 32 chiffres nombre hexadécimal. CHAR(32) fonctionnent très bien.
- Aucun. N'utilisez pas de MD5, c'est un mort de hachage. L'utilisation de SHA-2 ou au-dessus, et le magasin est une série de caractères hexadécimaux (64 caractères). Il est très agréable à lire, dans ce mode, et c'est l'approche standard.
- im pas bon à MySql mais un hash est nomaly un tableau d'octets, de sorte BINAIRE(16) doit être le meilleur, mais il pourrait être plus difficile d'écrire du sql personnalisé à des questions Binaires si c'est nécessaire?
- MD5 est parfaitement acceptable a pour non cryptographiques raisons(par exemple, la détection des doublons), mais ne doit pas être utilisé pour les mots de passe en raison de rainbow tables.
Vous devez vous connecter pour publier un commentaire.
Si la colonne est indexée et vous savez ce que vous faites,
BINARY(16)
pour des raisons de performances.Sinon,
CHAR(32)
est très bien. Assurez-vous que la colonne utilise le jeu de caractères ascii si. (ascii_bin
par exemple)