views:

810

answers:

3

Hi all,

I'm trying to write some code to work with an htdigest password file. The documentation I can find seems to claim that the format of that file is:

user:realm:MD5(user:realm:pass)

If that is the case, then why doesn't this work for me? I created a file with the command line htdigest thus:

htdigest -c test b a

When prompted for a password I entered 'c'. This creates a file with the contents:

a:b:02cc8f08398a4f3113b554e8105ebe4c

However if I try to derive this hash I can't,

echo a:b:c | md5

gives me "49d6ea7ca1facf323ca1928995420354". Is there something obvious that I'm missing here?

Thanks

A: 

Hm, I seem to have answered my own question. My test case was flawed, 'echo' is adding extra characters (not sure which). For instance

echo a:b:c | wc

gives 6 characters instead of 5. Calculating the hash at http://md5-hash-online.waraxe.us/ gives the correct value. Sorry everyone!

wxs
+3  A: 

echo by default adds a trailing new line:

echo -n a:b:c | md5

Should work as you expect.

Alabaster Codify
A: 

Here is how you set the password for a given user.

sudo htdigest /etc/apache2/.htdigest yourrealm.com yourusername