Auth MySQL с шифрованием Blowfish - PullRequest
2 голосов
/ 18 марта 2012

Мои имена пользователей и пароли хранятся в базе данных mysql с шифрованием blowfish.В php я могу зашифровать пароль следующим образом:

crypt($pwd, _SALT_)

, где $pwd = 'userpwd' и _SALT_ = $2a$07...

Я ищу способ использования таблицы пользователя также в VirtualHostс mod_auth_mysql.Я знаю, что это возможно с md5, используя Auth_MySQL_Encryption_Types PHP_MD5, но я бы предпочел остаться с blowfish.

Как мне сказать 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», возможнонаписано с ошибкой или определено модулем, не включенным в конфигурацию сервера

Ответы [ 3 ]

0 голосов
/ 13 апреля 2012

modauthmysql, похоже, не видел ни одного любителя разработчика более 7 лет. Мое текущее предположение о вашей проблеме - некоторые проблемы несовместимости, которые это вызывает с apache 2.2, который вы используете.

Посмотрев немного, как решить ту же проблему, я наткнулся на эту документацию: http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html

Кажется, что он может делать то, что вы хотите, при условии, что вы правильно настроили все его параметры.

0 голосов
/ 13 апреля 2012

Найдите директиву в /usr/share/doc/libapache2-mod-auth-mysql/DIRECTIVES.gz

Путь должен быть конкретным для вашей системы, приведенный выше для Debian Lenny

0 голосов
/ 19 марта 2012

использование

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.
...