यहां एक स्क्रिप्ट है जो उपयोगकर्ता नामों की एक सूची में पढ़ेगी, प्रत्येक के लिए एक यादृच्छिक पासवर्ड उत्पन्न करेगी, और उन्हें एक htdigest फ़ाइल, और एक सादा पाठ फ़ाइल दोनों में आउटपुट करेगी। इसका परीक्षण लिनक्स पर किया गया है, लेकिन अन्य प्रणालियों के लिए संशोधित करने की आवश्यकता हो सकती है। विशेष रूप से, md5sum
md5
हो सकता है, और head
हमेशा -c
ध्वज स्वीकार करता है।
$ ./load_users.bash
जिसके परिणामस्वरूप htdigest फ़ाइल:
$ cat passwd.htdigest
joe:MyRealm:2603a6c581f336f2874dbdd253aee780
curly:MyRealm:fd3f9d87bba654439d5ba1f32c0286a8
larry:MyRealm:c1c3c0dc50a9b97e9f7ee582e3fce892
$ cat users.txt
joe
curly
larry
स्क्रिप्ट चल रहा है:
#!/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
यह वही है इनपुट और परिणाम है, की तरह लग रहे पहले उपयोगकर्ता नाम फ़ाइल है
और सादा पाठ फाई le:
$ cat passwd.txt
joe:aLnqnrv0
curly:3xWxHKmv
larry:7v7m6mXY
स्रोत
2009-06-05 18:23:59
जीएनयू/लिनक्स एक पर (FreeBSD आदेश से अनुकूलित ऊपर) इस्तेमाल कर सकते हैं: '(गूंज -n" उपयोगकर्ता: दायरे: "&& गूंज -n" उपयोगकर्ता: दायरे: पासवर्ड "| md5sum - | कट-डी '' -एफ 1) >> आउटफाइल' – blerontin