서버이전시 암호화된 비밀번호 해결방법 문의드립니다..

서버이전시 암호화된 비밀번호 해결방법 문의드립니다..

QA

서버이전시 암호화된 비밀번호 해결방법 문의드립니다..

본문

euc-kr 낮은 버전에서 utf8 상위버전으로 호스티이전을 했는데요.
회원 mb_password 필드의 암호화 방식이 16비트에서 41비트로 바뀌어서
기존 회원이 로그인이 안됩니다..   
 
질문내용에서 찾아보니  아래의 lib/common.lib.php 에 소스수정하면 된다고 되어 있는데요..
이 경우는  높은버전에서 낮은버전으로 하는 경우고
제 경우 어떻게 해야하는지요.



-=======================================
lib/common.lib.php에서


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

function sql_password($value)
{
    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes

    // mysql 4.1x 이상 버젼에서도 password() 함수의 결과가 16bytes가 되어서
    // 41바이트의 기존 비밀번호 때문에 로그인 오류가 나는 경우에는 아래 코멘트를 풀어주세요
    // 마루호스팅에서 테스트 했습니다.
    sql_query("set old_passwords=0");

    $row = sql_fetch(" select password('$value') as pass ");
    return $row[pass];
}

이 질문에 댓글 쓰기 :

답변 3

/lib/common.lib.php 에 다음 함수를 추가 합니다.

 
function sql_old_password($value)
{
    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
    $row = sql_fetch(" select old_password('$value') as pass ");
    return $row[pass];
}




 

 그다음에 /bbs/login_check.php의 17라인을 다음과 같이 수정 합니다.



if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password] and sql_old_password($mb_password) != $mb[mb_password]))



이렇게 하시면, 로그인에 문제없으실겁니다.

저도 이 해결방법으로 문제를 잘 해결했습니다.  

 

그런데 정보수정에서 다시 한번 비밀번호를 체크할 때에는 '비밀번호가 틀립니다' 오류메세지가 뜹니다.  

 

비슷한 방법으로 뭔가를 더 수정해야 할 것 같은데 어떻게 하면 좋을까요?  

 

답변부탁드립니다.  

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT