在mysql中有效存储md5哈希的最佳实践

Eug*_*ash 28 mysql passwords md5

可能的字段类型:

BINARY(16)
CHAR(32)
BIGINT + BIGINT
Run Code Online (Sandbox Code Playgroud)

我如何决定使用哪一个?

Jos*_*vis 43

如果列已编入索引,并且BINARY(16)出于性能原因您知道自己在做什么.

否则,CHAR(32)很好.确保该列使用ascii字符集.(ascii_bin例如)

  • UNHEX()会将MD5转换为二进制字符串.http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_unhex (15认同)