그누보드 mysql password 대체
컨텐츠 정보
- 410 조회
- 0 추천
- 목록
본문
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;
}