큭 간만에 LAMP 작업 ㅎㅎ

같은 mysql 5.x 인거 확인하고 덤프떠서 넘겼더니 로그인이 안되더라구요


신규 서버 버전: 5.1.45

현재 서버 버전: 5.0.77


그래서 db를 확인해봐도 패스워드 길이값도 맞게 들어왔있어서 암호화된 값을 찍어봤습니다.


# 신규

*89C6B530AA78695E257E55D63C00A6EC9AD3E977

1111


# 현재

45271aba0b765d95

1111


길이 값이 달라서 안되는 상황이였구요 다음과 같이 처리 했습니다.


소스는 그누보드쪽을 참고 했습니다.

function sql_old_password($value) 

    $row = sql_fetch(" select old_password('$value') as pass "); 

    return $row[pass]; 


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]; 


로그인시 넘어온값을 받아서 패스워드 비교해보고 옛날 패스워드일경우 신규 패스워드로 업데이트 시켜버립니다.
업데이트된 패스워드면 비교해서 Y/N 처리 해 버립니다.

if (sql_old_password($mb_password) == $mb[mb_password]) {
    $sql = " update member_table set mb_password='" . sql_password($mb_password) . "' where mb_id='$mb_id' "; 
    sql_query($sql); 
} elseif (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) { 
    alert("땡! 틀렸음"); 
}


'Databases' 카테고리의 다른 글

SQLGate 접속 정보를 백업 및 복원  (0) 2014.01.28
phpmyadmin (PHP 4+ and MySQL 3+)  (0) 2014.01.03
MySQL의 암시 적 변환  (0) 2013.04.11
not like  (0) 2013.04.08
CHARACTER , COLLATE 확인 및 변경  (0) 2013.04.07

+ Recent posts