summaryrefslogtreecommitdiffstats
path: root/docs/manual/programs/htpasswd.html.en
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manual/programs/htpasswd.html.en')
-rw-r--r--docs/manual/programs/htpasswd.html.en90
1 files changed, 62 insertions, 28 deletions
diff --git a/docs/manual/programs/htpasswd.html.en b/docs/manual/programs/htpasswd.html.en
index 9c219e1..98689b4 100644
--- a/docs/manual/programs/htpasswd.html.en
+++ b/docs/manual/programs/htpasswd.html.en
@@ -38,17 +38,18 @@
<p>Resources available from the Apache HTTP server can be restricted to
just the users listed in the files created by <code>htpasswd</code>. This
program can only manage usernames and passwords stored in a flat-file. It
- can encrypt and display password information for use in other types of data
+ can hash and display password information for use in other types of data
stores, though. To use a DBM database see <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> or
<code class="program"><a href="../programs/htdbm.html">htdbm</a></code>.</p>
- <p><code>htpasswd</code> encrypts passwords using either bcrypt,
- a version of MD5 modified for Apache, SHA1, or the system's
- <code>crypt()</code> routine. Files
- managed by <code>htpasswd</code> may contain a mixture of different encoding
- types of passwords; some
- user records may have bcrypt or MD5-encrypted passwords while others in the
- same file may have passwords encrypted with <code>crypt()</code>.</p>
+ <p><code>htpasswd</code> hashes passwords using either bcrypt, a
+ version of MD5 modified for Apache, SHA-1, or the system's
+ <code>crypt()</code> routine. SHA-2-based hashes (SHA-256 and
+ SHA-512) are supported for <code>crypt()</code>. Files managed by
+ <code>htpasswd</code> may contain a mixture of different encoding
+ types of passwords; some user records may have bcrypt or
+ MD5-hashed passwords while others in the same file may have
+ passwords hashed with <code>crypt()</code>.</p>
<p>This manual page only lists the command line arguments. For details of
the directives necessary to configure user authentication in
@@ -71,9 +72,12 @@ distribution.</li><li><a href="#comments_section">Comments</a></li></ul></div>
[ -<strong>i</strong> ]
[ -<strong>m</strong> |
-<strong>B</strong> |
+ -<strong>2</strong> |
+ -<strong>5</strong> |
-<strong>d</strong> |
-<strong>s</strong> |
-<strong>p</strong> ]
+ [ -<strong>r</strong> <var>rounds</var> ]
[ -<strong>C</strong> <var>cost</var> ]
[ -<strong>D</strong> ]
[ -<strong>v</strong> ] <var>passwdfile</var> <var>username</var></code></p>
@@ -82,9 +86,12 @@ distribution.</li><li><a href="#comments_section">Comments</a></li></ul></div>
[ -<strong>c</strong> ]
[ -<strong>m</strong> |
-<strong>B</strong> |
+ -<strong>2</strong> |
+ -<strong>5</strong> |
-<strong>d</strong> |
-<strong>s</strong> |
-<strong>p</strong> ]
+ [ -<strong>r</strong> <var>rounds</var> ]
[ -<strong>C</strong> <var>cost</var> ]
[ -<strong>D</strong> ]
[ -<strong>v</strong> ] <var>passwdfile</var> <var>username</var>
@@ -94,17 +101,23 @@ distribution.</li><li><a href="#comments_section">Comments</a></li></ul></div>
[ -<strong>i</strong> ]
[ -<strong>m</strong> |
-<strong>B</strong> |
+ -<strong>2</strong> |
+ -<strong>5</strong> |
-<strong>d</strong> |
-<strong>s</strong> |
-<strong>p</strong> ]
+ [ -<strong>r</strong> <var>rounds</var> ]
[ -<strong>C</strong> <var>cost</var> ] <var>username</var></code></p>
<p><code><strong>htpasswd</strong> -<strong>nb</strong>
[ -<strong>m</strong> |
- -<strong>B</strong> |
+ -<strong>B</strong> |
+ -<strong>2</strong> |
+ -<strong>5</strong> |
-<strong>d</strong> |
-<strong>s</strong> |
-<strong>p</strong> ]
+ [ -<strong>r</strong> <var>rounds</var> ]
[ -<strong>C</strong> <var>cost</var> ] <var>username</var>
<var>password</var></code></p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -134,29 +147,44 @@ distribution.</li><li><a href="#comments_section">Comments</a></li></ul></div>
one) is omitted. It cannot be combined with the <code>-c</code> option.</dd>
<dt><code>-m</code></dt>
- <dd>Use MD5 encryption for passwords. This is the default (since version
+ <dd>Use MD5 hashing for passwords. This is the default (since version
2.2.18).</dd>
+ <dt><code>-2</code></dt>
+ <dd>Use SHA-256 <code>crypt()</code> based hashes for passwords. This is
+ supported on most Unix platforms.</dd>
+
+ <dt><code>-5</code></dt>
+ <dd>Use SHA-512 <code>crypt()</code> based hashes for passwords. This is
+ supported on most Unix platforms.</dd>
+
<dt><code>-B</code></dt>
- <dd>Use bcrypt encryption for passwords. This is currently considered to
+ <dd>Use bcrypt hashing for passwords. This is currently considered to
be very secure.</dd>
<dt><code>-C</code></dt>
<dd>This flag is only allowed in combination with <code>-B</code> (bcrypt
- encryption). It sets the computing time used for the bcrypt algorithm
+ hashing). It sets the computing time used for the bcrypt algorithm
(higher is more secure but slower, default: 5, valid: 4 to 17).</dd>
+ <dt><code>-r</code></dt>
+ <dd>This flag is only allowed in combination with <code>-2</code>
+ or <code>-5</code>. It sets the number of hash rounds used for the
+ SHA-2 algorithms (higher is more secure but slower; the default is
+ 5,000).</dd>
+
<dt><code>-d</code></dt>
- <dd>Use <code>crypt()</code> encryption for passwords. This is not
+ <dd>Use <code>crypt()</code> hashing for passwords. This is not
supported by the <code class="program"><a href="../programs/httpd.html">httpd</a></code> server on Windows and
Netware. This algorithm limits the password length to 8 characters.
This algorithm is <strong>insecure</strong> by today's standards.
It used to be the default algorithm until version 2.2.17.</dd>
<dt><code>-s</code></dt>
- <dd>Use SHA encryption for passwords. Facilitates migration from/to Netscape
- servers using the LDAP Directory Interchange Format (ldif).
- This algorithm is <strong>insecure</strong> by today's standards.</dd>
+ <dd>Use SHA-1 (160-bit) hashing for passwords. Facilitates migration
+ from/to Netscape servers using the LDAP Directory Interchange
+ Format (ldif). This algorithm is <strong>insecure</strong> by
+ today's standards.</dd>
<dt><code>-p</code></dt>
<dd>Use plaintext passwords. Though <code>htpasswd</code> will support
@@ -183,7 +211,7 @@ distribution.</li><li><a href="#comments_section">Comments</a></li></ul></div>
does exist, the password is changed.</dd>
<dt><code><var>password</var></code></dt>
- <dd>The plaintext password to be encrypted and stored in the file. Only
+ <dd>The plaintext password to be hashed and stored in the file. Only
used with the <code>-b</code> flag.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -208,7 +236,7 @@ distribution.</li><li><a href="#comments_section">Comments</a></li></ul></div>
</code></p></div>
<p>Adds or modifies the password for user <code>jsmith</code>. The user
- is prompted for the password. The password will be encrypted using the
+ is prompted for the password. The password will be hashed using the
modified Apache MD5 algorithm. If the file does not exist,
<code>htpasswd</code> will do nothing except return an error.</p>
@@ -239,29 +267,35 @@ distribution.</li><li><a href="#comments_section">Comments</a></li></ul></div>
setuid.</p>
<p>The use of the <code>-b</code> option is discouraged, since when it is
- used the unencrypted password appears on the command line.</p>
+ used the plaintext password appears on the command line.</p>
<p>When using the <code>crypt()</code> algorithm, note that only the first
8 characters of the password are used to form the password. If the supplied
password is longer, the extra characters will be silently discarded.</p>
- <p>The SHA encryption format does not use salting: for a given password,
- there is only one encrypted representation. The <code>crypt()</code> and
- MD5 formats permute the representation by prepending a random salt string,
- to make dictionary attacks against the passwords more difficult.</p>
+ <p>The SHA-1 hashing format does not use salting: for a given
+ password, there is only one hashed representation. The
+ <code>crypt()</code> and MD5 formats permute the representation by
+ prepending a random salt string, to make dictionary attacks
+ against the passwords more difficult.</p>
+
+ <p>The SHA-1 and <code>crypt()</code> formats are insecure by
+ today's standards.</p>
- <p>The SHA and <code>crypt()</code> formats are insecure by today's
- standards.</p>
+ <p>The SHA-2-based <code>crypt()</code> formats (SHA-256 and
+ SHA-512) are supported on most modern Unix systems, and follow the
+ specification at <a href="https://www.akkadia.org/drepper/SHA-crypt.txt">https://www.akkadia.org/drepper/SHA-crypt.txt</a>.</p>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="restrictions" id="restrictions">Restrictions</a></h2>
- <p>On the Windows platform, passwords encrypted with
+ <p>On the Windows platform, passwords hashed with
<code>htpasswd</code> are limited to no more than <code>255</code>
characters in length. Longer passwords will be truncated to 255
characters.</p>
<p>The MD5 algorithm used by <code>htpasswd</code> is specific to the Apache
- software; passwords encrypted using it will not be usable with other Web
+ software; passwords hashed using it will not be usable with other Web
servers.</p>
<p>Usernames are limited to <code>255</code> bytes and may not include the
@@ -295,7 +329,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/2.4/programs/htpasswd.ht
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2023 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2024 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();