apache httpd系列文章:
htpasswd用于为指定用户生成基于网页用户身份认证的密码,由httpd-tools软件包提供。支持3种加密算法:MD5、SHA和系统上的crypt()函数,不指定算法时,默认为md5。
htpasswd [ -c ] [ -m ] [ -D ] passwdfile usernamehtpasswd -b [ -c ] [ -m | -d | -p | -s ] [ -D ] passwdfile username passwordhtpasswd -n [ -m | -d | -s | -p ] usernamehtpasswd -nb [ -m | -d | -s | -p ] username password选项说明:passwdfile:包含用户名及其密码的用户密码文件。如果使用了"-c"选项,则会创建或覆盖文件。不使用"-n"选项时必须指定passwdfile参数。username:为指定的用户名创建密码。如果该用户记录已存在,则更新。-c:创建用户密码文件passwdfile,如果文件已经存在则会覆盖已存在的文件。不能和"-n"一起使用。-n:在标准输出中输出结果,而不是将其写入到用户密码文件中。该选项会忽略用户密码文件passwdfile参数。不能和"-c"选项一起使用。-m:使用MD5加密算法。默认。-d:使用crypt()函数计算密码,不安全。-s:使用SHA加密算法。安全。-P:强制不加密密码,保持明文状态,不安全。-B:强制bcrypt加密密码,非常安全。-D:从用户密码文件中删除指定的用户及其密码。-b:使用批处理模式,即非交互模式,可以直接待加密的传递明文密码。password:指定要输入的明文密码。只能在批处理模式中使用,即和"-b"一起使用。
例如:
(1).使用"-n"选项直接将结果输出到标准输出而不创建passwdfile。
[root@xuexi ~]# htpasswd -n JimNew password: Re-type new password: Jim:ZKHud9tziGucY
(2).使用批处理模式直接传递密码。
[root@xuexi ~]# htpasswd -nb Jim 123456 ; htpasswd -nb Jim 123456Jim:r.BF8RVw56BOAJim:xXoNgOS8nN3LQ
发现密码完全是随机的。
(3).创建用户密码文件passwdfile。
[root@xuexi ~]# htpasswd -cb Bobfile Bob 123456[root@xuexi ~]# cat Bobfile Bob:fvUxzB3kcnDPk
(4).删除用户文件中的某用户。
[root@xuexi ~]# htpasswd -D Bobfile Bob
(5).使用sha和md5加密算法计算密码。
[root@xuexi ~]# htpasswd -mb Bobfile Bob 123456[root@xuexi ~]# cat Bobfile Bob:$apr1$bllkodFt$GUmeb8hXngOAschs1SBgq0[root@xuexi ~]# htpasswd -sb Bobfile Bob 123456 [root@xuexi ~]# cat Bobfile Bob:{SHA}fEqNCco3Yq9h5ZUglD3CZJT4lBs=