2012-03-18 11 views
2

私は私のユーザ名とパスワードをブローフィッシュの暗号化を伴うmysql dbに保存しました。 PHPで私はこのようなパスワードを暗号化することができますブローフィッシュの認証MySQL

crypt($pwd, _SALT_) 

どこ$pwd = 'userpwd'_SALT_ = $2a$07...

を私はmod_auth_mysqlとのVirtualHostでも、ユーザーテーブルを使用する方法を探しています。私はAuth_MySQL_Encryption_Types PHP_MD5を使ってmd5で可能だと知っていますが、私はむしろブタに滞在したいと思います。

mysql_authにblowfishを使用するように指示するにはどうすればよいですか?そして私はどこに塩を入れるのですか?

編集:ここ

基本的な問題は、私はバーチャルホストファイル内のキーワードの間で「_」を使用しなければならないということです。だから、それは次のようになります。

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

代わりの構文文句Apacheを停止する

AuthMySQLDB authdata 
AuthMySQLUserTable user_info 
AuthMySQLGroupField user_group 

を[http://modauthmysql.sourceforge.net/CONFIGUREから取られました]。誰かが私に理由を教えてくれたりAuthMySQLSaltField <>

// EDIT 2のための「_'-構文伝えることができます: バージョン:とlibapache2-MOD-のauth-mysqlの(4.3.9-13ubuntu1)

//をEDIT 3: Serverバージョン:のApache/2.2.14(Ubuntuの)「_」なし「公式構文」を使用 正確なエラー:おそらくスペルミス、またはに含まれていないモジュールによって定義され、 無効なコマンド「AuthMySQLDB」サーバー構成

+0

以来ですあなたが持っているApacheの正確なバージョンは?そして、あなたが得た正確なエラーは何でしょうか(ペースト)? –

+0

「無効なコマンド 『AuthMySQLDB』、おそらくサーバ構成に含まれていないモジュールによってスペルミスまたは定義された」 Serverバージョン:Apacheの/ 2.2.14(Ubuntuは) –

答えて

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

も、事があり、そのapacheの構文について不平を言いますだから、私は(Auth_MySQL; Auth_MySQL_Authoritative on; ...)[using '_']を使用しなければならなかった。したがって、AuthMySQLSaltFieldは機能しません。私もAuth_MySQL_SaltFieldを試しました。 Auth_MySQL_Salt_Field、... –

0

modauthmysqlは7年以上にわたり、あらゆる開発者の愛を見ていないようです。あなたの問題に対する私の現在の推測は、使用しているApache 2.2で発生するいくつかの非互換性の問題です。

は、私は同じ問題を解決する方法についての周りにビットを見た後、私は、このマニュアルに出くわした: http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html

これはあなたが右のすべてのオプションを使用して、それを構成して、あなたがやりたいことができるように思われます。

パスは、システムに固有でなければなりません/usr/share/doc/libapache2-mod-auth-mysql/DIRECTIVES.gzでディレクティブの

+0

申し訳ありませんが、私はまだ理解できません:ブロッフィッシュで入ってくるパスワードを暗号化するには、どこで(SQL文? ) –

+0

申し訳ありませんが、ApacheとMySQLの両方のサイドでこれをさらに詳しく調べました。ブローフィッシュは行きません。 DESとAESまたは標準のCRYPTは、1つまたは別の形式で利用できます。もちろん、SHA1とMD5のハッシングもありますが、これらのシステムでは、ブローフィッシュは使用されていないようです。私は詳細をまだ調べていませんが、おそらくApacheの他の認証モジュールの1つが、あなたのためのトリックを実行できるシステムコール(スクリプト)を指定できるようになりますか? –

+0

「他の」構文の解決策があるのは面白いことです。私はまだ彼らがlibのバージョンやapache2のバージョンに依存している場合、構文の違いを理解していない –

0

ルックは、1は、上記のDebian Lennyの

関連する問題