sql >> Database teknologi >  >> RDS >> Mysql

Forskellen mellem BINARY(16) og CHAR(32) ved lagring af MD5 i databasen

I øjeblikket mister du halvdelen af ​​kontrolsummen, når du bruger BINARY(16) . Når du gemmer en MD5-kontrolsum i BINARY(16) du bør gemme det som binære data, ikke kodet i hexadecimal. Det vil sige:

INSERT INTO test (md5_binary) VALUES(UNHEX(md5("one!")));

Du kan bruge HEX-funktionen til at kode den til hex igen, hvis du vil sammenligne den med en anden kontrolsum:

SELECT HEX(md5_binary) FROM test;

Fordelen ved at bruge BINÆR til at gemme kontrolsummen i stedet for hexadecimal tekst er, at halvdelen af ​​lagerpladsen er nødvendig.




  1. 'datetime2' fejl ved brug af entity framework i VS 2010 .net 4.0

  2. Database/SQL:Hvordan gemmer man data om længde/breddegrad?

  3. MySQL bliver ved med at gå ned

  4. TILSLUT tre borde