<!DOCTYPE html> <html> <head> <meta http-equiv='content-type' content='text/html;charset=utf-8'> <meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'> <title>hash_password(1) - Calculate the hash of a new password, so that passwords can be reset</title> <style type='text/css' media='all'> /* style: man */ body#manpage {margin:0} .mp {max-width:100ex;padding:0 9ex 1ex 4ex} .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0} .mp h2 {margin:10px 0 0 0} .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex} .mp h3 {margin:0 0 0 4ex} .mp dt {margin:0;clear:left} .mp dt.flush {float:left;width:8ex} .mp dd {margin:0 0 0 9ex} .mp h1,.mp h2,.mp h3,.mp h4 {clear:left} .mp pre {margin-bottom:20px} .mp pre+h2,.mp pre+h3 {margin-top:22px} .mp h2+pre,.mp h3+pre {margin-top:5px} .mp img {display:block;margin:auto} .mp h1.man-title {display:none} .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143} .mp h2 {font-size:16px;line-height:1.25} .mp h1 {font-size:20px;line-height:2} .mp {text-align:justify;background:#fff} .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211} .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201} .mp u {text-decoration:underline} .mp code,.mp strong,.mp b {font-weight:bold;color:#131211} .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none} .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff} .mp b.man-ref {font-weight:normal;color:#434241} .mp pre {padding:0 4ex} .mp pre code {font-weight:normal;color:#434241} .mp h2+pre,h3+pre {padding-left:0} ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px} ol.man-decor {width:100%} ol.man-decor li.tl {text-align:left} ol.man-decor li.tc {text-align:center;letter-spacing:4px} ol.man-decor li.tr {text-align:right;float:right} </style> </head> <!-- The following styles are deprecated and will be removed at some point: div#man, div#man ol.man, div#man ol.head, div#man ol.man. The .man-page, .man-decor, .man-head, .man-foot, .man-title, and .man-navigation should be used instead. --> <body id='manpage'> <div class='mp' id='man'> <div class='man-navigation' style='display:none'> <a href="#NAME">NAME</a> <a href="#SYNOPSIS">SYNOPSIS</a> <a href="#DESCRIPTION">DESCRIPTION</a> <a href="#FILES">FILES</a> <a href="#OPTIONS">OPTIONS</a> <a href="#EXAMPLES">EXAMPLES</a> <a href="#COPYRIGHT">COPYRIGHT</a> <a href="#SEE-ALSO">SEE ALSO</a> </div> <ol class='man-decor man-head man head'> <li class='tl'>hash_password(1)</li> <li class='tc'></li> <li class='tr'>hash_password(1)</li> </ol> <h2 id="NAME">NAME</h2> <p class="man-name"> <code>hash_password</code> - <span class="man-whatis">Calculate the hash of a new password, so that passwords can be reset</span> </p> <h2 id="SYNOPSIS">SYNOPSIS</h2> <table> <tbody> <tr> <td> <code>hash_password</code> [<code>-p</code> </td> <td> <code>--password</code> [password]] [<code>-c</code> </td> <td> <code>--config</code> <var>file</var>]</td> </tr> </tbody> </table> <h2 id="DESCRIPTION">DESCRIPTION</h2> <p><strong>hash_password</strong> calculates the hash of a supplied password using bcrypt.</p> <p><code>hash_password</code> takes a password as an parameter either on the command line or the <code>STDIN</code> if not supplied.</p> <p>It accepts an YAML file which can be used to specify parameters like the number of rounds for bcrypt and password_config section having the pepper value used for the hashing. By default <code>bcrypt_rounds</code> is set to <strong>12</strong>.</p> <p>The hashed password is written on the <code>STDOUT</code>.</p> <h2 id="FILES">FILES</h2> <p>A sample YAML file accepted by <code>hash_password</code> is described below:</p> <p>bcrypt_rounds: 17 password_config: pepper: "random hashing pepper"</p> <h2 id="OPTIONS">OPTIONS</h2> <dl> <dt> <code>-p</code>, <code>--password</code> </dt> <dd>Read the password form the command line if [password] is supplied, or from <code>STDIN</code>. If not, prompt the user and read the password from the tty prompt. It is not recommended to type the password on the command line directly. Use the STDIN instead.</dd> <dt> <code>-c</code>, <code>--config</code> </dt> <dd>Read the supplied YAML <var>file</var> containing the options <code>bcrypt_rounds</code> and the <code>password_config</code> section containing the <code>pepper</code> value.</dd> </dl> <h2 id="EXAMPLES">EXAMPLES</h2> <p>Hash from the command line:</p> <pre><code>$ hash_password -p "p@ssw0rd" $2b$12$VJNqWQYfsWTEwcELfoSi4Oa8eA17movHqqi8.X8fWFpum7SxZ9MFe </code></pre> <p>Hash from the stdin:</p> <pre><code>$ cat password_file | hash_password Password: Confirm password: $2b$12$AszlvfmJl2esnyhmn8m/kuR2tdXgROWtWxnX.rcuAbM8ErLoUhybG </code></pre> <p>Hash from the prompt:</p> <pre><code>$ hash_password Password: Confirm password: $2b$12$AszlvfmJl2esnyhmn8m/kuR2tdXgROWtWxnX.rcuAbM8ErLoUhybG </code></pre> <p>Using a config file:</p> <pre><code>$ hash_password -c config.yml Password: Confirm password: $2b$12$CwI.wBNr.w3kmiUlV3T5s.GT2wH7uebDCovDrCOh18dFedlANK99O </code></pre> <h2 id="COPYRIGHT">COPYRIGHT</h2> <p>This man page was written by Rahul De «rahulde@swecha.net» for Debian GNU/Linux distribution.</p> <h2 id="SEE-ALSO">SEE ALSO</h2> <p><span class="man-ref">synctl<span class="s">(1)</span></span>, <span class="man-ref">synapse_port_db<span class="s">(1)</span></span>, <span class="man-ref">register_new_matrix_user<span class="s">(1)</span></span>, <span class="man-ref">synapse_review_recent_signups<span class="s">(1)</span></span></p> <ol class='man-decor man-foot man foot'> <li class='tl'></li> <li class='tc'>August 2024</li> <li class='tr'>hash_password(1)</li> </ol> </div> </body> </html>