你如何htdigest 400用户帐户?

zer*_*n23 9 apache htdigest

如何为400个用户生成用户帐户以进行负载测试?

Htdigest每次强制你输入一个密码,我尝试过dos管道

echo password > htdigest -c realm username%1 

htdigest -c realm username%1 < password.txt 
Run Code Online (Sandbox Code Playgroud)

但它不起作用......

X-I*_*nce 16

您还可以查看trac在其网站上为htdigest密码分发的python脚本,然后您可以将其自动化:

在没有Apache的情况下生成htdigest密码

他们还建议沿着这些方向发挥作用:

可以使用md5sum实用程序使用以下方法生成摘要密码文件:

$ printf "${user}:trac:${password}" | md5sum - >>user.htdigest
Run Code Online (Sandbox Code Playgroud)

并从末尾手动删除" - "并将"$ {user}:trac:"添加到"to-file"行的开头.


我在FreeBSD上测试了这个,不确定这是否可以在Linux或Windows上运行,所以你可能需要稍微修改一下:

(echo -n "user:realm:" && echo -n "user:realm:testing" | md5) > outfile
Run Code Online (Sandbox Code Playgroud)

outfile包含:

user:realm:84af20dd88a2456d3bf6431fe8a59d16
Run Code Online (Sandbox Code Playgroud)

与htdigest相同:

htdigest -c outfile2 realm user
Run Code Online (Sandbox Code Playgroud)

输出在outfile2中

user:realm:84af20dd88a2456d3bf6431fe8a59d16
Run Code Online (Sandbox Code Playgroud)

它们都是相同的,从而证明了命令行实现的正确性!

  • 在GNU/Linux上可以使用(改编自上面的FreeBSD命令):`(echo -n"user:realm:"&& echo -n"user:realm:passwd"| md5sum - | cut -d'' - f1) >> outfile` (3认同)

Dou*_*der 6

(旁白:在unix/linux上,第一个应该是:

echo password | htdigest -c realm username$1
Run Code Online (Sandbox Code Playgroud)

)

由于htdigest没有任何传递密码的好方法,我会使用expect自动化过程.

来自http://www.seanodonnell.com/code/?id=21的一个例子:

#!/usr/bin/expect
#########################################
#$ file: htpasswd.sh
#$ desc: Automated htpasswd shell script
#########################################
#$
#$ usage example:
#$
#$ ./htpasswd.sh passwdpath username userpass
#$
######################################

set htpasswdpath [lindex $argv 0]
set username [lindex $argv 1]
set userpass [lindex $argv 2]

# spawn the htpasswd command process
spawn htpasswd $htpasswdpath $username

# Automate the 'New password' Procedure
expect "New password:"
send "$userpass\r"

expect "Re-type new password:"
send "$userpass\r"
Run Code Online (Sandbox Code Playgroud)

如果需要,它将作为练习留给用户将其转换为Windows.