.httpasswd - это просто текстовые файлы в определенном формате, в зависимости от указанной хэш-функции. Если вы используете MD5, они выглядят так:
foo:$apr1$y1cXxW5l$3vapv2yyCXaYz8zGoXj241
Это логин, двоеточие, $ apr1 $, соль и 1000 md5, закодированные как base64. Если вы выберете SHA1, они будут выглядеть так:
foo:{SHA}BW6v589SIg3i3zaEW47RcMZ+I+M=
Это логин, двоеточие, строка {SHA} и хеш SHA1, закодированный с base64.
Если ваш язык имеет реализацию MD5 или SHA1 и base64, вы можете просто создать файл следующим образом:
<?php
$login = 'foo';
$pass = 'pass';
$hash = base64_encode(sha1($pass, true));
$contents = $login . ':{SHA}' . $hash;
file_put_contents('.htpasswd', $contents);
?>
Вот дополнительная информация о формате:
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html