Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unterschied zwischen BINARY(16) und CHAR(32) beim Speichern von MD5 in der Datenbank

Derzeit verlieren Sie die Hälfte der Prüfsumme, wenn Sie BINARY(16) verwenden . Wenn Sie eine MD5-Prüfsumme in BINARY(16) speichern Sie sollten es als Binärdaten speichern, nicht hexadezimal kodiert. Das heißt:

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

Sie können die HEX-Funktion verwenden, um es wieder in Hex zu codieren, wenn Sie es mit einer anderen Prüfsumme vergleichen möchten:

SELECT HEX(md5_binary) FROM test;

Der Vorteil der Verwendung von BINARY zum Speichern der Prüfsumme anstelle von hexadezimalem Text besteht darin, dass die Hälfte des Speicherplatzes benötigt wird.