Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为DBD和MySQL 5.1中使用的Apache2身份验证生成正确的密码格式?_Mysql_Apache_Authentication_Apache2_Mod Auth - Fatal编程技术网

如何为DBD和MySQL 5.1中使用的Apache2身份验证生成正确的密码格式?

如何为DBD和MySQL 5.1中使用的Apache2身份验证生成正确的密码格式?,mysql,apache,authentication,apache2,mod-auth,Mysql,Apache,Authentication,Apache2,Mod Auth,我想用AuthType Basic 密码以纯文本形式存储(它们不是真正的密码,因此不重要)。 但是,apache的密码格式只允许在Linux系统上使用SHA1、MD5 如何使用SQL查询生成正确的格式?apache格式似乎是长度为20的二进制格式,但mysqlSHA1函数返回的长度为40 我的SQL查询如下所示: SELECT CONCAT('{SHA}', BASE64_ENCODE(SHA1(access_key))) FROM user_access_keys INNER JOIN use

我想用
AuthType Basic

密码以纯文本形式存储(它们不是真正的密码,因此不重要)。
但是,apache的密码格式只允许在Linux系统上使用SHA1、MD5

如何使用SQL查询生成正确的格式?apache格式似乎是长度为20的二进制格式,但mysql
SHA1
函数返回的长度为40

我的SQL查询如下所示:

SELECT CONCAT('{SHA}', BASE64_ENCODE(SHA1(access_key))) FROM user_access_keys INNER JOIN users ON user_access_keys.user_id = users.id WHERE name = %s
其中
base64\u encode
是一个存储函数(Mysql 5.1还没有
TO\u base64
)。此查询返回一个61字节的BLOB,它与apache使用的格式不同。如何生成相同的格式


你也可以为此建议其他方法。关键是,我想使用纯文本作为密码对MySQL5.1数据库中的用户进行身份验证。

您提到的文档并不意味着“仅限Unix”意味着非Linux,因此您可以使用crypt()。由于您似乎不关心安全性,我建议这是MySQL功能之外最简单的选择。您可能希望在查询中使用常量种子值

SELECT ENCRYPT(access_key, 'SA') FROM user_access_keys INNER JOIN users ON user_access_keys.user_id = users.id WHERE name = %s

好的,那么我如何使用SQL查询生成正确的格式呢?