我想对来自 MySQL 5.1 数据库的文件夹的用户进行身份验证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 users ON user_access_keys.user_id = users.id WHERE name = %s
base64_encode
存储函数在哪里(Mysql 5.1 还TO_BASE64
没有)。此查询返回一个 61 字节的 BLOB,它与 apache 使用的格式不同。我怎样才能生成相同的格式?
您也可以为此建议其他方法。关键是我想使用纯文本作为密码对 MySQL5.1 数据库中的用户进行身份验证。