Я пытаюсь написать код для работы с файлом паролей htdigest. Документация, которую я могу найти, похоже, утверждает, что формат этого файла:
user:realm:MD5(user:realm:pass)
Если это так, то почему у меня это не работает? Я создал файл с командной строкой htdigest таким образом:
htdigest -c test b a
Когда меня попросили ввести пароль, я ввел «c». Это создает файл с содержимым:
a:b:02cc8f08398a4f3113b554e8105ebe4c
Однако, если я попытаюсь получить этот хеш, я не смогу,
echo a:b:c | md5
дает мне "49d6ea7ca1facf323ca1928995420354". Есть ли что-то очевидное, что мне здесь не хватает?
Спасибо

Хм, похоже, я ответил на свой вопрос. Мой тестовый пример был ошибочным, «эхо» добавляет дополнительные символы (не уверен, какие именно). Например
echo a:b:c | wc
дает 6 символов вместо 5. Вычисление хэша в http://md5-hash-online.waraxe.us/ дает правильное значение. Извините всех!
echo по умолчанию добавляет завершающую новую строку:
echo -n a:b:c | md5
Должно работать так, как вы ожидаете.
Вот как вы устанавливаете пароль для данного пользователя.
sudo htdigest /etc/apache2/.htdigest yourrealm.com yourusername