ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 중 선택해서 사용!!

    반응형

    댓글

Designed by Tistory.