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函数。

随机日志

  • laptop升级到karmic (9.10)
  • 编译安装支持中文的rrdtool
  • 使用Cacti监测系统与网络性能_5
  • 在操作系统中查看BIOS的DMI(SMBIOS)信息
  • 有时候rp特别好-wii的频道下载
  • 5 Responses to “mysql加密函数”

    1. Searock Says:

      Joe好棒啊,总是走在我们前面。以后要多拜访。

    2. joe Says:

      见笑了,我真愧不敢当呢!

    3. froons Says:

      请问,我原来的password的结果是40来位的字符,换到新服务器上变成短字符串了,用的是虚拟主机,不能改my.conf,应该怎么办?谢谢
      查了一下现在的mysql是5.0,只是如你所讲启用了oldpassword

    4. froons Says:

      解决了,用set old_password=0,打扰了

    5. joecen Says:

      解决了,用set old_password=0,打扰了

      刚看到,没关系。

    Leave a Reply