我可以从一台电脑生成一个htpasswd,然后将其ftp到另一台服务器

时间:2011-08-18 21:59:09

标签: apache .htpasswd

我将使用什么加密算法在htpasswd文件中生成密码?

我正在运行Visual Basic程序并使用ftp服务器来FTP客户端文件。我为每个客户端创建新目录,并希望为每个客户端目录添加一些密码保护(用于http访问)。

服务器在linux上运行apache。 我读过的是apache使用稍微修改过的MD5版本,以及系统基础“crypt”方法。这个页面:http://httpd.apache.org/docs/current/programs/htpasswd.html#security似乎说我可以使用几种算法中的一种。我想目前我对它如何选择使用加密感到困惑。

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。 Apache可以通过它之前的盐识别不同的加密

答案 1 :(得分:0)

该算法由密码字段的第一个子字段选择。典型的htpasswd文件条目如下所示:

ralph:$1$abcd1234$Kx528z52Ohx1JLSzliZmw0

按字段:

ralph是用户名

1是哈希算法标识符。 1 = md5,5 = sha-256,6 = sha-512

abcd1234是盐(这里不太咸,通常通过一些伪随机技术生成)

Kx528z52Ohx1JLSzliZmw0是哈希值。

使用密码和salt作为输入创建哈希的单行python命令是:

python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$1\$abcd1234\$')"

免责声明:在<5分钟的研究之后,这个答案很大程度上从另一个论坛的slm解除了。