mysql加密函数
本文可自由转载,但请遵循“署名-非商业用途-保持一致”的创作共用协议。 永久链接:JoeCen's 小猫窝-----------------------------
有个系统一直用"passwd()"函数加密用户密码,今天有另一个项目需要移植该系统使用,谁知道新用户一直不能登录。
后来发现,用户表的密码字段是用“passwd()"函数加密的,而只有16个字节。
select password('password');
一下,发现出来的结果却是有40位的。所以用户密码对应不了,不能登录。
原来mysql有两个password函数,一个是新的password(),有40位;另一个是旧的password(),只有16位。旧的password函数可以用old_password()来调用。
两个函数都可以用password() 函数调用,控制开关由/etc/mysql/my.cnf中的old_passwords变量设定:
设置为“0” ,调用新的password函数,
设置为"1",就调用旧的password函数。
August 4th, 2006 at 11:53 am Quote
Joe好棒啊,总是走在我们前面。以后要多拜访。
August 4th, 2006 at 11:57 am Quote
见笑了,我真愧不敢当呢!
March 28th, 2009 at 10:43 am Quote
请问,我原来的password的结果是40来位的字符,换到新服务器上变成短字符串了,用的是虚拟主机,不能改my.conf,应该怎么办?谢谢
查了一下现在的mysql是5.0,只是如你所讲启用了oldpassword
March 28th, 2009 at 11:29 am Quote
解决了,用set old_password=0,打扰了
March 29th, 2009 at 12:40 am Quote
刚看到,没关系。