目前用apache来生成SVN的登录用户密码主要有两种方式:1)htpasswd生成的basic加密密码 2)htdigest生成的digest消息摘要加密密码。我主要分析了htdigest密码生成规则。
htdigest命令行格式为 htdigest passwordfile "间隔符"  username(passwordfile 为密码文件名,"间隔符"为用户名与密码中间的间隔符号,username则为帐号名称),假如你输入 htdigest testfile "test"  luofang 在输入密码后,在testfile文件中生成 luofang:test:XXXXXXXXXXXXXXXXXXXXXXX格式的字符串。通过分析htdigest 源文件,在多次尝试后,确认了htdigest 是通过字符串组合加密的方式生成加密密码。主要方式如下,将 luofang:test:原始密码用MD5加密后的字符串添加到luofang:test:后面所组合成的字符串即为完整的htdigest 加密的密码文件的格式。因此只要修改用户名、间隔符以及密码之一,生成的密钥字符串都会不同。