-
MySQL PASSWORD 함수 PHP 구현스터디/PHP 2021. 3. 19. 15:23반응형
MySQL 8.0 에서는 더 이상 password() 함수의 사용이 불가하다
그누보드는 password() 에서 PBKDF2 로 변경되었다
처음부터 MySQL 8.0 버전을 사용하면 문제가 없으나
MySQL 5.X 버전을 사용하다 8.0버전으로 이전하는 경우
기존에 password() 함수를 이용했다면
8.0 버전에서는 password() 함수가 존재하지 않아
로그인이 되지 않는 경우가 발생한다
기존 MySQL 의 password() 함수를 따로 구현해서 사용해야 한다
PHP로 간단히 기존 MySQL 함수를 구현하면
function mysqlPassword($pw) {
return '*'.strtoupper(sha1(sha1($pw, true)));
}그누보드에 적용하려면
/lib/common.lib.php 파일의 sql_password() 함수를 아래와 같이 수정하면 된다
1. PHP 이용
function sql_password($value)
{
$pass = '*'.strtoupper(sha1(sha1($value, true)));
return $pass;
}2. MySQL 이용
function sql_password($value)
{
$row = sql_fetch(" SELECT CONCAT('*', UPPER(SHA1(UNHEX(SHA1('$value'))))) as pass ");
return $row['pass'];
}1, 2 중 선택해서 사용!!
반응형