kiểu trường có thể xảy ra:Thực hành tốt nhất để lưu trữ một cách hiệu quả băm md5 trong mysql
BINARY(16)
CHAR(32)
BIGINT + BIGINT
Làm thế nào để quyết định cái nào sử dụng không?
kiểu trường có thể xảy ra:Thực hành tốt nhất để lưu trữ một cách hiệu quả băm md5 trong mysql
BINARY(16)
CHAR(32)
BIGINT + BIGINT
Làm thế nào để quyết định cái nào sử dụng không?
Nếu cột được lập chỉ mục và bạn biết bạn đang làm gì, BINARY(16)
vì lý do hiệu suất.
Nếu không, CHAR(32)
là tốt. Hãy chắc chắn rằng cột sử dụng bộ mã ascii mặc dù. (Ví dụ: ascii_bin
)
UNHEX() sẽ chuyển đổi MD5 thành chuỗi nhị phân. http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_unhex – Slashterix
Và sau đó sử dụng HEX() khi CHỌN để chuyển đổi từ nhị phân thành dạng thập lục phân dễ đọc hơn. – Eborbob
Không có. Không sử dụng MD5, đó là [băm chết] (http://valerieaurora.org/hash.html). Sử dụng SHA-2 hoặc cao hơn và lưu trữ dưới dạng một chuỗi ký tự hex (64 ký tự). Nó rất hay để đọc, trong thời trang này, và đó là cách tiếp cận tiêu chuẩn. –
im không tốt tại MySql nhưng một băm là nomaly một mảng byte để BINARY (16) nên là tốt nhất, nhưng nó có thể khó khăn hơn để viết câu hỏi sql tùy chỉnh chống lại nhị phân nếu thats cần thiết? – Peter
Băm MD5 thường được biểu diễn dưới dạng số hex gồm 32 chữ số. CHAR (32) sẽ hoạt động tốt. – thetaiko