[제나플러스] [펌]패스워드 41bite 버전에서 16bite 버전으로 옮겨야할 경우. > 팁앤테크

본문 바로가기
사이트 내 전체검색

팁앤테크

[제나플러스] [펌]패스워드 41bite 버전에서 16bite 버전으로 옮겨야할 경우.

페이지 정보

profile_image
작성자 제로
댓글 0건 조회 51,185회 작성일 13-04-25 10:33

본문

패스워드 41bite 버전에서 16bite 버전으로 옮겨야할 경우.

기존홈피가 41bite 암호방식을 하는 DB를 사이트 이전의 이유로 16bite 버전으로 옮겨야할 경우.

mysql 버전이 4.1이상인데도 구버전을 사용하는 경우가 있을 수 있습니다.

아마도 새로운 41bite방식을 사용하지 않고 구 16bite방식을 계속 사용하기 위해 옵션을 조절한 경우일텐데요.

일부러 이렇게 사용하는 이유는 .. 뭔 사정이 있겠지만..

암튼 구버전으로 구동되기 때문에 로그인, 정보수정 등에서 비번 정보를 물어오는데요.

이때 옮기기전 서버에서 신버전을 사용하기 때문에 일반적으로는 로그인이 되지 않습니다.

버전별 암호화 방식이 다르기 때문에 다른 문자로 인식해서 입니다.

이럴때는 구버전과 신버전의 암호를 비교하여 신버전 암호가 맞으면 암호를 구버전으로 업데이트

하라는 방식이로 구현할 수 있습니다.

좀전에 있던 것과 정반대로 하는 방식입니다.

http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=21757

위의 방식이 맞는 줄 알고 했다가 다시 로그인해보니 안되어서 다시

한 2시간 해메이다. 풀었습니다.



이럴때는 sql_query("set old_passwords=OFF"); <= 요놈을 적절하게 사용하여 설정을 잡아 줘야한다는 것이었습니다.


./lib/common.lib.php 파일에서



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


=========== 를 아래와 같이 변경 ============

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

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





그리고

./bbs/login.check.php 에서


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

    alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}

=============를 아래와 같이 변경 =================

if (sql_old_password($mb_password) == $mb[mb_password]) { // 옛날 패스워드를 새로운 패스워드로 바꿉니다.
    $sql = " update $g4[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("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}


해주시면

로그인하는 회원들의 비밀번호가 로그인 할 때 41bite 버전에서 16bite 버전으로 자동으로 바뀌게 되어
구번전으로 변경되게 됩니다.

댓글목록

등록된 댓글이 없습니다.

Total 829건 9 페이지
  • RSS
팁앤테크 목록
번호 제목 글쓴이 조회 날짜
629 제로 63286 10-18
628 제로 49099 10-16
627 제로 49268 10-16
626 제로 65682 05-18
625 제로 71416 05-17
624 제로 69300 05-12
623 제로 68011 05-11
622 제로 49318 04-26
열람중 제로 51186 04-25
620 제로 66529 04-18
619 제로 65813 04-18
618 제로 67544 04-18
617 제로 69387 04-17
616 제로 67304 04-04
615 제로 77157 04-02
614 제로 60738 03-22
613 제로 62522 03-22
612 제로 60986 03-19
611 제로 80537 03-19
610 제로 65626 03-14
609 제로 67211 03-06
608 朴城忍 62000 02-28
607 朴城忍 71060 02-27
606 제로 65873 02-14
605 제로 66747 02-08

검색

회원로그인

회원가입

사이트 정보

株式会社YHPLUS / 대표 : ZERO
〒140-0011 東京都品川区東大井2-5-9-203
050-5470-4714
오픈카카오톡 (YHPLUS) :
https://open.kakao.com/o/slfDj15d

접속자집계

오늘
8,189
어제
21,182
최대
431,155
전체
6,673,173
Copyright (c) 株式会社YHPLUS. All rights reserved.