AuthType Basic
으로 MySQL 5.1 데이터베이스의 폴더에 대해 사용자를 인증하려고합니다.
암호는 일반 텍스트로 저장됩니다 (실제 암호가 아니기 때문에 중요하지 않습니다).
그러나 아파치의 암호 형식은 Linux 시스템의 SHA1, MD5 만 허용합니다. as described here.DBD 및 MySQL 5.1과 함께 사용하는 Apache2 인증에 적합한 암호 형식을 생성하는 방법은 무엇입니까?
SQL 쿼리로 올바른 형식을 어떻게 만들 수 있습니까? 아파치 형식은 20의 길이를 갖는 바이너리 형식이지만, mysql의 SHA1
함수는 40을 리턴한다.
base64_encode
가 저장 기능입니다
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
(MySQL은 5.1 아직 TO_BASE64
이없는) :
내 SQL 쿼리는이 같은 것입니다. 이 쿼리는 Apache에서 사용하는 것과 같은 형식이 아닌 61 바이트 BLOB를 반환합니다. 같은 형식을 어떻게 만들 수 있습니까?
다른 방법을 제안 할 수도 있습니다. 요점은 일반 텍스트를 암호로 사용하여 MySQL5.1 데이터베이스에서 사용자를 인증하려고한다는 것입니다.
괜찮습니까? 그렇다면 어떻게하면 올바른 형식의 SQL 쿼리를 생성 할 수 있습니까? – kissgyorgy