PHP md5插入localhost

时间:2014-06-14 06:35:25

标签: php sql

我正在尝试为密码字段插入md5值。当我检查查询时,例如:

c4ca4238a0b923820dcc509a6f75849b

但它正在插入

c4ca4238a0b923820dcc509a6f7584

(请注意原始值缺少9b

我的查询代码是:

INSERT INTO employee_list (employee_id,password)
VALUES('user12','c4ca4238a0b923820dcc509a6f75849b')

1 个答案:

答案 0 :(得分:5)

您的password字段很可能被定义为VARCHAR(30)(IIRC,它是在phpmyadmin中创建表时的默认值),而md5总是32个字符长。

将数据库作为VARCHAR(32)(或更高,这些额外的字节不会对您的应用程序造成不利影响),并且不会被删除。

如果你允许我,我建议你放弃md5哈希,这被认为不够安全(碰撞,彩虹表等),并寻求一个更好,更慢的algorythm。 PHP 5.5现在具有使用bcrypt的password_hash()函数,但如果您使用的是较低版本,则可以使用带有CRYPT_BLOWFISH标志的crypt()函数。请注意,在这种情况下,字段需要超过32个字符。