Php 使用blowfish加密验证MySQL
我将我的用户名和密码存储在带有河豚加密的mysql数据库中。 在php中,我可以像这样加密密码:Php 使用blowfish加密验证MySQL,php,mysql,authentication,webdav,virtualhost,Php,Mysql,Authentication,Webdav,Virtualhost,我将我的用户名和密码存储在带有河豚加密的mysql数据库中。 在php中,我可以像这样加密密码: crypt($pwd, _SALT_) 其中$pwd='userpwd'和\u SALT=$2a$07… 我正在寻找一种在虚拟主机中通过mod\u auth\u mysql使用用户表的方法。我知道md5可以使用Auth\u MySQL\u Encryption\u type PHP\u md5,但我更愿意使用blowfish 我如何告诉mysql_auth使用河豚?我在哪里进盐 编辑: 这里的基本
crypt($pwd, _SALT_)
其中$pwd='userpwd'
和\u SALT=$2a$07…
我正在寻找一种在虚拟主机中通过mod\u auth\u mysql
使用用户表的方法。我知道md5可以使用Auth\u MySQL\u Encryption\u type PHP\u md5
,但我更愿意使用blowfish
我如何告诉mysql_auth使用河豚?我在哪里进盐
编辑:
这里的基本问题是,我必须在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
...
停止apache对语法的抱怨。有人能告诉我为什么或者告诉我AuthMySQLSaltField
//编辑2:
版本:libapache2 mod auth mysql(4.3.9-13ubuntu1)
//编辑3:
服务器版本:Apache/2.2.14(Ubuntu)
使用不带“\”的“官方语法”时的确切错误:
命令“AuthMySQLDB”无效,可能拼写错误或由服务器配置中未包含的模块定义
AuthMySQLPwEncryption crypt
AuthmysqlpEncryption none | crypt |扰码| md5 | aes | sha1
AuthMySQLPasswordField中用于密码的加密类型:
无:未加密(纯文本)
crypt:UNIX crypt()加密
加扰:MySQL密码加密
md5:md5哈希
高级加密标准(aes)加密
sha1:安全哈希算法(sha1)
警告:使用aes加密时,密码字段必须为BLOB类型
(即TINYBLOB)。MySQL将删除尾随的x'20'字符(空格),甚至
如果列类型是二进制的!
AuthMySQLSaltField | | mysql|列_名称
包含用于地下室和aes的盐场信息
加密方法。它可以包含以下内容之一:
:密码本身是salt字段(仅与crypt()一起使用)
:“字符串”作为盐场
mysql\u column\u name:salt取自
与密码相同的行
aes加密需要此字段,加密可选。
对于所有其他加密类型,它将被忽略。
使用
AuthmysqlpEncryption none | crypt |扰码| md5 | aes | sha1
AuthMySQLPasswordField中用于密码的加密类型:
无:未加密(纯文本)
crypt:UNIX crypt()加密
加扰:MySQL密码加密
md5:md5哈希
高级加密标准(aes)加密
sha1:安全哈希算法(sha1)
警告:使用aes加密时,密码字段必须为BLOB类型
(即TINYBLOB)。MySQL将删除尾随的x'20'字符(空格),甚至
如果列类型是二进制的!
AuthMySQLSaltField | | mysql|列_名称
包含用于地下室和aes的盐场信息
加密方法。它可以包含以下内容之一:
:密码本身是salt字段(仅与crypt()一起使用)
:“字符串”作为盐场
mysql\u column\u name:salt取自
与密码相同的行
aes加密需要此字段,加密可选。
对于所有其他加密类型,它将被忽略。
modauthmysql似乎已经7年多没有看到任何开发者的喜爱了。我目前对您的问题的猜测是,这会导致您使用的Apache2.2出现一些不兼容问题 在仔细研究如何解决同一问题后,我发现了以下文档:
只要您正确配置它的所有选项,它似乎可以做您想要做的事情。modauthmysql似乎已经有7年多没有受到任何开发人员的喜爱了。我目前对您的问题的猜测是,这会导致您使用的Apache2.2出现一些不兼容问题 在仔细研究如何解决同一问题后,我发现了以下文档:
只要您正确配置它的所有选项,它似乎可以做您想要的事情。在/usr/share/doc/libapache2 mod auth mysql/directions.gz中查找该指令
路径应该特定于您的系统,上面的路径是针对Debian Lenny的,请在/usr/share/doc/libapache2 mod auth mysql/DIRECTIVES.gz中查找该指令
路径应该是特定于您的系统的,上面的路径是针对Debian Lenny的,问题是,apache抱怨语法,所以我不得不使用(Auth_MySQL on;Auth_MySQL_Authority on;…)[使用''.']。所以AuthMySQLSaltField不起作用了。我还试过Auth_MySQL_SaltField;Auth_MySQL_Salt_Field,…嗯,问题是,apache抱怨语法,所以我不得不使用(Auth_MySQL on;Auth_MySQL_authoritive on;…)[使用''.']。所以AuthMySQLSaltField不起作用了。我还试过Auth_MySQL_SaltField;Auth_MySQL_Salt_Field,…因为apache正在抱怨。。。您有哪一个确切的apache版本?可能您得到的确切错误是什么(粘贴)?“无效命令'AuthMySQLDB',可能拼写错误或由服务器配置中未包含的模块定义”服务器版本:Apache/2.2.14(Ubuntu),因为Apache正在抱怨。。。您有哪一个确切的apache版本?也许你得到的确切错误是什么(粘贴)?“无效的命令'AuthMySQLDB',可能拼写错误或由服务器配置中未包含的模块定义”服务器版本:Apache/2.2.14(Ubuntu)很抱歉,但我仍然无法弄清楚:我必须告诉哪里(SQL语句?)才能用blowfish加密传入的pasword(输入我的$2$…salt)很抱歉,我在Apache和Mysql方面都做了更多的研究。Blowfish是不可能的。DES和AES或标准CRYPT以一种或另一种形式提供,当然还有SHA1和MD5散列,但Blowfish似乎在这些系统中未被使用。我还没有详细研究它,但可能是
AuthMySQLPwEncryption crypt
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.