如何使 ftpasswd 支持 md5

如何使 ftpasswd 支持 md5

我在 Mac 上使用 xampp,尝试更改 proftpd.conf 中的默认密码。我想我需要做的是使用 ftpasswd 获取我的新密码哈希并替换 proftpd.conf 中的旧密码。

所以我做了:

ftpasswd --hash

然后输入了两次我的新密码。但我收到了警告:

您请求了 MD5 密码,但您的系统不支持。默认为 DES 密码。

我该如何解决这个问题以获取 md5 哈希值?

答案1

ProFTPD 附带的实用程序ftpasswd会生成底层 C 库函数可以接受的密码哈希值crypt(3)。因此它不是 ProFTPD,本身,即使用 MD5 密码哈希(或 DES,或其他任何算法);它是 ProFTPD 使用该crypt(3)功能。

在其他 Unix/Linux 版本中,该crypt(3)函数可以支持不同的哈希算法(例如 DES、MD5、Blowfish,甚至 SHA-256/SHA-512),由生成的哈希的前几部分标识。因此,前缀"$1$..."可能表示 DES 哈希值,"$2$...对于 MD5,ETC然而,不是每个 Unix 变体都支持这种语法;它看起来像 MacOSXcrypt(3)函数不是

调用,并检查返回的哈希值。如果使用了命令行选项(从而请求 MD5 哈希值)ftpasswdcrypt(3)--md5如果返回的哈希值不以 开头"$2$...",则ftpasswd表明该平台不支持 MD5 哈希密码。添加此类支持需要 C 库以及其他基础库,因此并非易事。

替代方案包括使用 SQL 数据库作为用户数据库(通过mod_sql模块);mod_sql_passwdProFTPD 模块允许相当多的密码散列算法/功能。

另外,你也许应该不是在 中使用默认密码proftpd.conf;这类信息很容易泄露。我强烈建议您使用 之类的东西mod_sql,甚至是单独的AuthUserFile,或其他东西。

希望这可以帮助!

完整免责声明:我是 ProFTPD 和该模块的作者mod_sql_passwd

相关内容