sql >> Database >  >> RDS >> Mysql

Verschil tussen BINARY (16) en CHAR (32) bij het opslaan van MD5 in de database

Momenteel verliest u de helft van de controlesom bij het gebruik van BINARY(16) . Wanneer u een MD5-controlesom opslaat in BINARY(16) je moet het opslaan als binaire gegevens, niet gecodeerd in hexadecimaal. Dat is:

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

U kunt de HEX-functie gebruiken om het opnieuw in hex te coderen als u het wilt vergelijken met een andere controlesom:

SELECT HEX(md5_binary) FROM test;

Het voordeel van het gebruik van BINARY om de controlesom op te slaan in plaats van hexadecimale tekst is dat de helft van de opslagruimte nodig is.




  1. QueryException SQLSTATE [HY000] [1045] Toegang geweigerd voor gebruiker 'homestead'@'localhost' (met wachtwoord:JA)

  2. Slechte gewoonten:rijen tellen op de harde manier

  3. complexe sql-instructie naar verschillende rijen

  4. Proberen verbinding te maken met een externe MySQL-host (fout 2003)