我已经设置了ProFTPD,以便它使用mod_sql_mysql
后端。一切工作正常,直到我将用户插入SQL数据库。我用下面的查询可以这样做:ProFTPD如何读取使用MySQL ENCRYPT()函数加密的密码?
INSERT INTO `auth`.`users` (`userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`)
VALUES ('username', ENCRYPT('bluefish'), '999', '999', '/dev/zero', '/bin/laden');
我可以登录到我的帐户就好了,但我真的不明白的ProFTPD如何读取加密的密码"bluefish"
为MySQL使用一个随机盐如果没有提供盐。每当ProFTPD使用MySQL后端检查密码是否与数据库中的一个条目匹配时,这应该导致ENCRYPT('bluefish')
的输出不同。
它工作得很好,但。 ProFTPD如何知道使用了什么盐?
谢谢你的解释!我不知道这个!我可能不得不深入挖掘crypt()一点点:) – user2628088