我在 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 哈希值)ftpasswd
,crypt(3)
--md5
和如果返回的哈希值不以 开头"$2$..."
,则ftpasswd
表明该平台不支持 MD5 哈希密码。添加此类支持需要 C 库以及其他基础库,因此并非易事。
替代方案包括使用 SQL 数据库作为用户数据库(通过mod_sql
模块);mod_sql_passwd
ProFTPD 模块允许相当多的密码散列算法/功能。
另外,你也许应该不是在 中使用默认密码proftpd.conf
;这类信息很容易泄露。我强烈建议您使用 之类的东西mod_sql
,甚至是单独的AuthUserFile
,或其他东西。
希望这可以帮助!
完整免责声明:我是 ProFTPD 和该模块的作者mod_sql_passwd
。