我已经设置了 ProFTPD 以便它使用mod_sql_mysql
后端。在我将用户插入 SQL 数据库之前,一切正常。我使用以下查询来执行此操作:
INSERT INTO `auth`.`users` (`userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`)
VALUES ('username', ENCRYPT('bluefish'), '999', '999', '/dev/zero', '/bin/laden');
我可以很好地登录我的帐户,但我真的不明白 ProFTPD 如何读取加密密码"bluefish"
,因为如果没有提供盐,MySQL 会使用随机盐。这应该会导致ENCRYPT('bluefish')
每次 ProFTPD 使用 MySQL 后端检查密码是否与数据库中的一个条目匹配时的不同输出。
它工作得很好。ProFTPD 如何知道使用了什么盐?