Hiện tại, bạn đang mất một nửa tổng tổng khi sử dụng BINARY(16)
. Khi bạn lưu trữ tổng kiểm tra MD5 trong BINARY(16)
bạn nên lưu trữ nó dưới dạng dữ liệu nhị phân, không được mã hóa trong hệ thập lục phân. Đó là:
INSERT INTO test (md5_binary) VALUES(UNHEX(md5("one!")));
Bạn có thể sử dụng hàm HEX để mã hóa nó thành hex một lần nữa nếu bạn muốn so sánh nó với một tổng kiểm tra khác:
SELECT HEX(md5_binary) FROM test;
Lợi ích của việc sử dụng BINARY để lưu trữ tổng kiểm tra thay vì văn bản thập lục phân là cần một nửa dung lượng lưu trữ.