Assuming you create the password using the following command and "myPassword" as the password
  htpasswd -c /usr/local/apache/passwd/passwords usernamefi
You may need to change your openssl command, as Apache's htpasswd command crypts slightly differently on each system.

 

htpasswd 是apache的小工具,在apache安装目录bin下可找到。

 

Usage:
    htpasswd [-cmdpsD] passwordfile username
    htpasswd -b[cmdpsD] passwordfile username password

    htpasswd -n[mdps] username
    htpasswd -nb[mdps] username password
 -c  创建一个新的加密密码文件
 -n  不更新文件,显示结果
 -m  使用MD5加密密码
 -d  使用CRYPT加密密码(默认)
 -p  不加密密码
 -s  使用SHA加密密码
 -b  直接在命令行输入密码,而不是提示后再输入密码
 -D  删除用户
在Windows, NetWare与 TPF系统,'-m' 是默认的密码加密方式。
在所有其他系统,'-p'可能不能使用。

1.生成加密密码文件

htpasswd -c .pass fdipzone
New password: 
Re-type new password: 
Adding password for user fdipzone

这样就生成了一个使用CRYPT加密密码的文件 

以下命令可以生成用md5加密密码的文件,b参数的作用是在命令行直接把密码输入,这样就不需要等提示输入密码再输入了。

htpasswd -cmb .pass fdipzone 123456
Adding password for user fdipzone

2.修改密码

htpasswd .pass fdipzone
New password: 
Re-type new password: 
Updating password for user fdipzone

3.增加用户

htpasswd .pass guest
New password: 
Re-type new password: 
Adding password for user guest

4.删除用户

htpasswd -D .pass guest
Deleting password for user guest

如果使用p参数,不加密密码,系统会提示Warning,因此为了安全最好不要使用p参数。

 

htpasswd -cp .pass fdipzone
Warning: storing passwords as plain text might just not work on this platform.

 

.htaccess 调用加密密码文件控制访问权限

 

 

首先 Allowoverride 需要设置为 AuthConfig 或 All

然后在需要控制访问的目录下增加.htaccess

 

.htaccess内容如下

 

AuthType "Basic"
AuthName "Password Required" #提示文字
AuthUserFile "/home/fdipzone/sites/pass/.pass" #加密密码的文件
Require valid-user

 

当访问该目录下的文件时,则会弹出要求输入用户名和密码的输入框。输入正确的用户名和密码后就能正常访问。

Apache Htpasswd生成和验证密码

 

 

tips:为了安全,加密的密码文件请不要放在线上用户可以访问的路径。

 

OpenSSL命令---passwd

用途:

passwd命令计算一个密钥的哈希值或者计算列表中的每个密钥的hash值。

用法:

 

openssl passwd [-crypt] [-1] [-apr1] [-salt  string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}

 

选项说明:

-crypt:生成标准的unix口令密文。默认选项。

-1:用MD5基于BSD的密钥算法。

-apr1:Apache md5口令密文。

-salt  string:用指定的字符串填充。当从终端读取一个密钥时,则填充它。

-in file:从指定的文件中读取密钥。

-stdin:从stdin中读取密钥。

-noverify:当从终端读取口令时不去验证它。

-quiet:当命令行提供的密钥是缩短了的,则不输出警告。

-table:用户输入的口令和结果用缩进隔开。

password:需要处理的密钥值。

实例:

openssl passwd -crypt -salt xx password  

打印出xxj31ZMTZzkVA。

 

openssl passwd -1 -salt xxxxxxxx password

 

打印出($1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.)。

 

openssl passwd -apr1 -salt xxxxxxxx password

 

打印出<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0。

 

 

https://zhidao.baidu.com/question/372107922550340204.html

http://blog.csdn.net/fdipzone/article/details/41020045 

http://blog.csdn.net/as3luyuan123/article/details/14917959

 

相关文章:

  • 2022-12-23
  • 2021-12-22
  • 2022-02-18
  • 2022-02-16
  • 2022-01-05
  • 2022-01-05
猜你喜欢
  • 2021-12-02
  • 2021-07-28
  • 2022-12-23
  • 2022-12-23
  • 2021-10-24
  • 2022-03-02
相关资源
相似解决方案