我的用户名和密码存储在带有blowfish encrption的mysql数据库中。 在php中,我可以像这样加密密码:
crypt($pwd, _SALT_)
其中$pwd = 'userpwd'
和_SALT_ = $2a$07...
我正在寻找一种在mod_auth_mysql
的VirtualHost中使用用户表的方法。我知道使用Auth_MySQL_Encryption_Types PHP_MD5
md5是可能的,但我宁愿留在河豚。
如何告诉mysql_auth使用blowfish?我在哪里输入盐?
修改
这里的基本问题是我必须在vhost文件中的关键字之间使用'_'。所以它看起来像:
<Location /webdav>
AuthType Basic
AuthName "jst-development"
AuthUserFile /dev/null
AuthBasicAuthoritative Off
Auth_MySQL on
Auth_MySQL_Authoritative on
Auth_MySQL_DB user
Auth_MySQL_User user
...
而不是[取自http://modauthmysql.sourceforge.net/CONFIGURE]
AuthMySQLDB authdata
AuthMySQLUserTable user_info
AuthMySQLGroupField user_group
停止apache抱怨语法。有人可以告诉我为什么或告诉我AuthMySQLSaltField <>
// 编辑2: 版本:libapache2-mod-auth-mysql(4.3.9-13ubuntu1)
// 编辑3: 服务器版本:Apache / 2.2.14(Ubuntu) 使用没有'_'的'官方语法'时出现确切错误: 无效的命令'AuthMySQLDB',可能由服务器配置中未包含的模块拼写错误或定义
答案 0 :(得分:0)
使用
AuthMySQLPwEncryption crypt
http://modauthmysql.sourceforge.net/CONFIGURE
AuthMySQLPwEncryption none | crypt | scrambled | md5 | aes | sha1 The encryption type used for the passwords in AuthMySQLPasswordField: none: not encrypted (plain text) crypt: UNIX crypt() encryption scrambled: MySQL PASSWORD encryption md5: MD5 hashing aes: Advanced Encryption Standard (AES) encryption sha1: Secure Hash Algorihm (SHA1) WARNING: When using aes encryption, the password field MUST be a BLOB type (i.e. TINYBLOB). MySQL will strip trailing x'20' characters (blanks), EVEN IF THE COLUMN TYPE IS BINARY! AuthMySQLSaltField <> | <string> | mysql_column_name Contains information on the salt field to be used for crypt and aes encryption methods. It can contain one of the following: <>: password itself is the salt field (use with crypt() only) <string>: "string" as the salt field mysql_column_name: the salt is take from the mysql_column_name field in the same row as the password This field is required for aes encryption, optional for crypt encryption. It is ignored for all other encryption types.
答案 1 :(得分:0)
modauthmysql似乎没有看到任何开发者的爱超过7年。我目前对您的问题的猜测是由于您使用的apache 2.2导致的一些不兼容问题。
在仔细研究了如何解决同样的问题后,我遇到了这个文档: http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html
如果您使用其所有选项正确配置它,这似乎能够做您想要的。
答案 2 :(得分:0)
在/usr/share/doc/libapache2-mod-auth-mysql/DIRECTIVES.gz中查找指令
路径应该特定于您的系统,上面的那个是Debian Lenny