使用 htpasswd 创建和管理身份验证文件

htpasswd 命令可以创建一个文件,这个文件中包含了用户和密码,其中密码可以是明文,也可以是经过加密的。这文件可以用来做认证文件,因为这个文件包含了用户名和密码的信息。通过用户名和密码就可以判断用户名和密码是否匹配。

htpasswd 的简单的说明

Usage:
        htpasswd [-cimBdpsDv] [-C cost] passwordfile username
        htpasswd -b[cmBdpsDv] [-C cost] passwordfile username password

        htpasswd -n[imBdps] [-C cost] username
        htpasswd -nb[mBdps] [-C cost] username password
 -c  创建一个新的文件.
 -n  不更新文件,仅仅输出结果。
 -b  通过命令直接给出密码,而不是通过交互式的提示
 -i  通过输入来验证密码
 -m  默认 md5 加密
 -B  使用 bcrypt 加密密码,安全性高
 -d  使用 CRYPT 加密,最多8个字符,不是很安全.
 -s  使用SHA 对密码加密,不是很安全.
 -p  使用明文存储密码,不是很安全.
 -D  删除指定的用户.
 -v  对指定用户尽心密码验证. 

先运行htpasswd一下看看发生了什么

# 创建一个空的密码文件
touch pwfile.txt


# 创建两个用户 用户名分别是 vspok, vpsok2 密码都是 123456
htpasswd -b  pwfile.txt vpsok 123456
htpasswd -b  pwfile.txt vpsok2 123456

查看密码文件的内容

cat pwfile.txt
vpsok:$apr1$TKvXOJkn$b1IVHsxR1EeCMdgj3i0HZ/
vpsok2:$apr1$D.JQJSz/$AOIoWHWVTCdqvJCYux6oV1

关于密码文件的简单的说明,上面两个用户密码是相同的为什么,加密后密码不同呢?

密码加密后的字符串 $apr1$TKvXOJkn$b1IVHsxR1EeCMdgj3i0HZ/ $ 分割成三部分看

  1. apr1 表示使用 md5 算法
  2. TKvXOJkn 随机生成的 salt
  3. b1IVHsxR1EeCMdgj3i0HZ/ 表示加密后的密文

验证测试

htpasswd -v pwfile.txt vpsok
Enter password:

输入密码,如果密码正确就表示通过验证

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注