Python
Apache
python3
Digest認証

.htdigestファイルをPythonで書き換える

.htdigestファイルの中身は次のようになっている。

.htdigest
# [ユーザ名]:[レルム名]:[MD5値]という構成になっている
root:DigestZone:ba31a07d0aa46ccc6c511602204e9c15

このうち[MD5値]は、文字列"[ユーザ名]:[レルム名]:[パスワード]"をMD5変換したものである。

よって、新しいパスワードで.htdigestファイルを書き換えようと思ったら次のようにすればよい。

import hashlib

user = "root"
realm = "DigestZone"
password = "new_password"

# MD5値の算出
md5 = hashlib.md5("{}:{}:{}".format(user, realm, password).encode("utf-8")).hexdigest()

# .htdigestファイルに書き込む新しい文字列
htdigest = "{}:{}:{}\n".format(user, realm, md5)