För närvarande förlorar du hälften av kontrollsumman när du använder BINARY(16)
. När du lagrar en MD5-kontrollsumma i BINARY(16)
du bör lagra den som binär data, inte kodad i hexadecimal. Det vill säga:
INSERT INTO test (md5_binary) VALUES(UNHEX(md5("one!")));
Du kan använda HEX-funktionen för att koda den till hex igen om du vill jämföra den med en annan kontrollsumma:
SELECT HEX(md5_binary) FROM test;
Fördelen med att använda BINÄR för att lagra kontrollsumman istället för hexadecimal text är att halva lagringsutrymmet behövs.