<i id='lECWQ'><tr id='lECWQ'><dt id='lECWQ'><q id='lECWQ'><span id='lECWQ'><b id='lECWQ'><form id='lECWQ'><ins id='lECWQ'></ins><ul id='lECWQ'></ul><sub id='lECWQ'></sub></form><legend id='lECWQ'></legend><bdo id='lECWQ'><pre id='lECWQ'><center id='lECWQ'></center></pre></bdo></b><th id='lECWQ'></th></span></q></dt></tr></i><div id='lECWQ'><tfoot id='lECWQ'></tfoot><dl id='lECWQ'><fieldset id='lECWQ'></fieldset></dl></div>

    <tfoot id='lECWQ'></tfoot>

        <small id='lECWQ'></small><noframes id='lECWQ'>

      1. <legend id='lECWQ'><style id='lECWQ'><dir id='lECWQ'><q id='lECWQ'></q></dir></style></legend>
          <bdo id='lECWQ'></bdo><ul id='lECWQ'></ul>
      2. 以编程方式构建 htpasswd

        时间:2023-10-02

          <bdo id='UTutR'></bdo><ul id='UTutR'></ul>
          <tfoot id='UTutR'></tfoot><legend id='UTutR'><style id='UTutR'><dir id='UTutR'><q id='UTutR'></q></dir></style></legend>

            1. <i id='UTutR'><tr id='UTutR'><dt id='UTutR'><q id='UTutR'><span id='UTutR'><b id='UTutR'><form id='UTutR'><ins id='UTutR'></ins><ul id='UTutR'></ul><sub id='UTutR'></sub></form><legend id='UTutR'></legend><bdo id='UTutR'><pre id='UTutR'><center id='UTutR'></center></pre></bdo></b><th id='UTutR'></th></span></q></dt></tr></i><div id='UTutR'><tfoot id='UTutR'></tfoot><dl id='UTutR'><fieldset id='UTutR'></fieldset></dl></div>

                <small id='UTutR'></small><noframes id='UTutR'>

                  <tbody id='UTutR'></tbody>
                • 本文介绍了以编程方式构建 htpasswd的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  是否有一种编程方式来构建 htpasswd 文件,而不依赖于操作系统特定的函数(即 exec()passthru())?

                  Is there a programmatic way to build htpasswd files, without depending on OS specific functions (i.e. exec(), passthru())?

                  推荐答案

                  .httpasswd 文件只是具有特定格式的文本文件,具体取决于指定的散列函数.如果您使用的是 MD5,它们看起来像这样:

                  .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:

                  foo:$apr1$y1cXxW5l$3vapv2yyCXaYz8zGoXj241
                  

                  那是登录名、冒号、,$apr1$、盐和 1000 次 md5 编码为 base64.如果您选择 SHA1,它们看起来像这样:

                  That's the login, a colon, ,$apr1$, the salt and 1000 times md5 encoded as base64. If you select SHA1 they look like this:

                  foo:{SHA}BW6v589SIg3i3zaEW47RcMZ+I+M=
                  

                  这是登录名、冒号、字符串 {SHA} 和用 base64 编码的 SHA1 哈希.

                  That's the login, a colon, the string {SHA} and the SHA1 hash encoded with base64.

                  如果您的语言实现了 MD5 或 SHA1 和 base64,您可以像这样创建文件:

                  If your language has an implementation of either MD5 or SHA1 and base64 you can just create the file like this:

                  <?php
                  
                  $login = 'foo';
                  $pass = 'pass';
                  $hash = base64_encode(sha1($pass, true));
                  
                  $contents = $login . ':{SHA}' . $hash;
                  
                  file_put_contents('.htpasswd', $contents);
                  
                  ?>
                  

                  以下是有关格式的更多信息:

                  Here's more information on the format:

                  http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

                  这篇关于以编程方式构建 htpasswd的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:使用 CRON 作业执行 PHP 脚本 下一篇:PHP 中的定时任务(类似 cron)

                  相关文章

                  最新文章

                    <bdo id='gCl2A'></bdo><ul id='gCl2A'></ul>
                  <tfoot id='gCl2A'></tfoot>
                • <legend id='gCl2A'><style id='gCl2A'><dir id='gCl2A'><q id='gCl2A'></q></dir></style></legend>

                      <i id='gCl2A'><tr id='gCl2A'><dt id='gCl2A'><q id='gCl2A'><span id='gCl2A'><b id='gCl2A'><form id='gCl2A'><ins id='gCl2A'></ins><ul id='gCl2A'></ul><sub id='gCl2A'></sub></form><legend id='gCl2A'></legend><bdo id='gCl2A'><pre id='gCl2A'><center id='gCl2A'></center></pre></bdo></b><th id='gCl2A'></th></span></q></dt></tr></i><div id='gCl2A'><tfoot id='gCl2A'></tfoot><dl id='gCl2A'><fieldset id='gCl2A'></fieldset></dl></div>

                      <small id='gCl2A'></small><noframes id='gCl2A'>