htdbm
用于操作DBM格式的文件,该文件用于存储用户名和密码,以便通过进行HTTP用户的基本认证
mod_authn_dbm
。dbmmanage
有关这些DBM文件的更多信息,请参见文档。
htdbm
[ -TDBTYPE ]
[ -i ]
[ -c ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C cost ]
[ -t ]
[ -v ]
filename username
htdbm -b
[ -TDBTYPE ]
[ -c ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C cost ]
[ -t ]
[ -v ]
filename username password
htdbm -n
[ -i ]
[ -c ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C cost ]
[ -t ]
[ -v ]
username
htdbm -nb
[ -c ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C cost ]
[ -t ]
[ -v ]
username password
htdbm -v
[ -TDBTYPE ]
[ -i ]
[ -c ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C cost ]
[ -t ]
[ -v ]
filename username
htdbm -vb
[ -TDBTYPE ]
[ -c ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C cost ]
[ -t ]
[ -v ]
filename username password
htdbm -x
[ -TDBTYPE ]
filename username
htdbm -l
[ -TDBTYPE ]
-b
-i
选项。-i
-c
-n
选项组合使用。-n
-c
选项结合使用。-m
-B
-C
-B
(bcrypt加密)结合使用,才允许使用此标志。它设置用于bcrypt算法的计算时间(越高,越安全,但越慢,默认值:5,有效值:4到31)。-d
crypt()
对密码使用加密。Windows和Netware以外的所有平台上的默认设置。尽管可能
htdbm
在所有平台上都受支持,但httpd
Windows和Netware上的服务器不支持它
。按照当今的标准,该算法是不安全的。-s
-p
htdbm
将在所有平台上支持创建,但该httpd
守护程序仅在Windows和Netware上接受纯文本密码。-l
-v
-x
-t
filename
.db
,.pag
或.dir
。如果
-c
指定,则创建DBM文件(如果尚不存在),或者将其更新(如果存在)。username
password
-b
标志一起使用。-TDBTYPE
应该意识到,存在多种不同的DBM文件格式,并且很可能在您的系统上存在一种以上格式的库。三个主要示例是SDBM,NDBM,GNU GDBM和Berkeley / Sleepycat DB 2/3/4。不幸的是,所有这些库都使用不同的文件格式,并且您必须确保filename所使用的文件格式与htdbm
期望的格式相同
。htdbm
当前无法确定正在查看的DBM文件类型。如果以错误的格式使用它,将仅返回任何内容,或者创建具有不同名称的其他DBM文件,或者在最坏的情况下,如果您尝试写入DBM文件,则可能会损坏该DBM文件。
通常,可以使用file
大多数Unix系统提供的程序来查看DBM文件采用的格式。
htdbm
如果用户名和密码已成功添加或更新到DBM文件中,则返回零状态(“ true”)。
htdbm
返回1
如果遇到一些问题访问文件,2
如果有一个语法问题,在命令行中,3
如果密码是交互输入和验证条目不匹配,4
如果操作被中断,5
如果一个值太长(用户名,文件名,密码或最终计算的记录),6
如果用户名包含非法字符(请参阅“ 限制”部分),并且7
该文件不是有效的DBM密码文件。
htdbm /usr/local/etc/apache/.htdbm-users jsmith
添加或修改用户的密码jsmith
。提示用户输入密码。如果在Windows系统上执行,则将使用修改后的Apache MD5算法对密码进行加密;否则,crypt()
将使用系统的例程。如果文件不存在,htdbm
除了返回错误外,什么都不做。
htdbm -c /home/doe/public_html/.htdbm jane
创建一个新文件并将记录存储在其中以供user使用jane
。提示用户输入密码。如果文件存在并且无法读取或写入,则不会更改该文件,并且htdbm
会显示一条消息并返回错误状态。
htdbm -mb /usr/web/.htdbm-all jones Pwd4Steve
Pwd4Steve
使用MD5算法从命令行()加密密码,并将其存储在指定的文件中。
如由管理网络的密码文件htdbm
应该
不会是Web服务器的URI空间中, -也就是说,他们不应该是可提取使用的浏览器。
-b
不建议使用该选项,因为使用该选项时,未加密的密码会出现在命令行中。
使用crypt()
算法时,请注意,仅使用密码的前8个字符来构成密码。如果提供的密码更长,多余的字符将被静默丢弃。
SHA加密格式不使用盐化:对于给定的密码,只有一个加密的表示形式。在crypt()
前面加上一个随机字符串盐,使对密码字典攻击的难度和MD5格式置换表示。
crypt()
按当今的标准,SHA和格式是不安全的。
在Windows平台上,使用加密的密码的
长度限制htdbm
为不超过255
字符。较长的密码将被截断为255个字符。
所使用的MD5算法htdbm
特定于Apache软件。使用它加密的密码将无法在其他Web服务器上使用。
用户名限制为255
字节,并且不能包含字符:
。