Đây là tập lệnh sẽ đọc trong danh sách tên người dùng, tạo mật khẩu ngẫu nhiên cho mỗi tệp và xuất chúng thành cả tệp htdigest và tệp văn bản thuần túy. Nó đã được thử nghiệm trên Linux, nhưng có thể cần phải được sửa đổi cho các hệ thống khác. Cụ thể, md5sum
có thể là md5
và head
không luôn chấp nhận cờ -c
.
#!/bin/bash
# auth realm for digest auth
AUTH_REALM=MyRealm
# file locations
# a file containing a list of user names,
# one name per line, e.g.,
# $ cat users.txt
# joe
# curly
# larry
USER_FILE=users.txt
# htdigest file, needs to exist
HTDIGEST_FILE=passwd.htdigest
# insecure password file
PASSWD_FILE=passwd.txt
# read the names from the user file
while read username
do
# generate a pseudo-random password
rand_pw=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c8`
# hash the username, realm, and password
htdigest_hash=`printf $username:$AUTH_REALM:$rand_pw | md5sum -`
# build an htdigest appropriate line, and tack it onto the file
echo "$username:$AUTH_REALM:${htdigest_hash:0:32}" >> $HTDIGEST_FILE
# put the username and password in plain text
# clearly, this is terribly insecure, but good for
# testing and importing
echo "$username:$rand_pw" >> $PASSWD_FILE
done < $USER_FILE
Đây là những gì đầu vào và kết quả như thế nào, đầu tiên nộp các tên người dùng:
$ cat users.txt
joe
curly
larry
Chạy kịch bản:
$ ./load_users.bash
Kết quả là tập tin htdigest:
$ cat passwd.htdigest
joe:MyRealm:2603a6c581f336f2874dbdd253aee780
curly:MyRealm:fd3f9d87bba654439d5ba1f32c0286a8
larry:MyRealm:c1c3c0dc50a9b97e9f7ee582e3fce892
Và văn bản thuần túy le:
$ cat passwd.txt
joe:aLnqnrv0
curly:3xWxHKmv
larry:7v7m6mXY
Nguồn
2009-06-05 18:23:59
Trên GNU/Linux có thể sử dụng (được điều chỉnh từ lệnh FreeBSD ở trên): '(echo -n" user: realm: "&& echo -n" user: realm: passwd "| md5sum - | cut -d '' -f1) >> outfile' – blerontin