그누보드 mysql password 대체

컨텐츠 정보

본문

mysql 8.x 에서 password 함수가 제거되어

그누보드 예전 버전을 이용하거나, 서버이전 등으로 mysql 버전이 올라간 경우

로그인이 되지 않는 현상이 나타난다


/lib/common.lib.php 파일의 sql_password() 함수를 아래와 같이 수정


-----------------------------------------------------------------------------------------


/**

 * MySQL PASSWORD() 함수로 생성된 비밀번호의 hash 값을 반환

 *

 * MySQL 버전에 따라 결과가 다르게 나올 수 있음.

 * MySQL 8.0.11 버전 이상에서는 오류 발생(PASSWORD 함수가 제거됨)으로 사용할 수 없음.

 *

 * @deprecated 이 함수는 안전하지 않으므로 사용하지 않는 것을 권장 함

 * @see get_encrypt_string() and check_password()

 * @param string $value

 * @return string

 */

function sql_password($value)

{

    /*

    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes

    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes

    $row = sql_fetch(" SELECT password('{$value}') as pass ");


    return $row['pass'];

    */

    ## mysql password() 함수 대체

    $pass = strtoupper(sha1(sha1($value, true)));

    $pass = '*' . $pass;

    return $pass;

}

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
나는 모든 작품마다 넘어졌다. 발레는 최선을 다하면 넘어지게 되어 있다. 인간이니까. (강수진, 발레리나)