以编程方式构建 htpasswd
是否有一种编程方式来构建 htpasswd 文件,而不依赖于操作系统特定函数(即 exec()
、passthru()
)?
Is there a programmatic way to build htpasswd files, without depending on OS specific functions (i.e. exec()
, passthru()
)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Trac 附带了 htpasswd 的 Python 替代品,我相信您可以将其移植到您选择的语言:< a href="http://trac.edgewall.org/browser/trunk/contrib/htpasswd.py" rel="nofollow noreferrer">htpasswd.py。
Trac ships with a Python replacement for htpasswd, which I'm sure you could port to your language of choice: htpasswd.py.
根据 PHP 网站上的说明,您可以在以下方法中使用 crypt():
可以找到此示例的部分内容: https://www.php.net/crypt
这当然会覆盖整个现有文件,因此您需要进行某种连接。
我不是 100% 确定这会起作用,但我很确定。
From what it says on the PHP website, you can use crypt() in the following method:
Part of this example can be found: https://www.php.net/crypt
This will of course overwrite the entire existing file, so you'll want to do some kind of concatination.
I'm not 100% sure this will work, but I'm pretty sure.
.httpasswd 文件只是具有特定格式的文本文件,具体取决于指定的哈希函数。 如果您使用 MD5,它们看起来像这样:
这是登录名、冒号、$apr1$、salt 和 1000 倍的 md5 编码为 base64。 如果您选择 SHA1,它们看起来像这样:
这是登录名、冒号、字符串 {SHA} 和使用 base64 编码的 SHA1 哈希值。
如果您的语言具有 MD5 或 SHA1 和 base64 的实现,您可以像这样创建文件:
以下是有关格式的更多信息:
http://httpd.apache.org/docs/2.2/misc/password_cryptions.html
.httpasswd files are just text files with a specific format depending on the hash function specified. If you are using MD5 they look like this:
That's the login, a colon, ,$apr1$, the salt and 1000 times md5 encoded as base64. If you select SHA1 they look like this:
That's the login, a colon, the string {SHA} and the SHA1 hash encoded with base64.
If your language has an implementation of either MD5 or SHA1 and base64 you can just create the file like this:
Here's more information on the format:
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html