我正在尝试为密码字段插入md5值。当我检查查询时,例如:
c4ca4238a0b923820dcc509a6f75849b
但它正在插入
c4ca4238a0b923820dcc509a6f7584
(请注意原始值缺少9b
)
我的查询代码是:
INSERT INTO employee_list (employee_id,password)
VALUES('user12','c4ca4238a0b923820dcc509a6f75849b')
答案 0 :(得分:5)
您的password
字段很可能被定义为VARCHAR(30)
(IIRC,它是在phpmyadmin中创建表时的默认值),而md5总是32个字符长。
将数据库作为VARCHAR(32)
(或更高,这些额外的字节不会对您的应用程序造成不利影响),并且不会被删除。
如果你允许我,我建议你放弃md5哈希,这被认为不够安全(碰撞,彩虹表等),并寻求一个更好,更慢的algorythm。 PHP 5.5现在具有使用bcrypt的password_hash()函数,但如果您使用的是较低版本,则可以使用带有CRYPT_BLOWFISH标志的crypt()函数。请注意,在这种情况下,字段需要超过32个字符。