그누보드의 패스워드 구성. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

그누보드의 패스워드 구성. 정보

그누보드의 패스워드 구성.

본문

에~~~ 안녕하십니까.. 존경하는 SIR 관리자 림화 및

일전에DB 때문에 질문을 올렸던 퍼그씨 라고 함돠..

[일전에 질문 올렸던 링크 보기]

다름아니고  사용자 DB 이전에 대해서 우선 확답을 받아놓은 상태이고

그 확답 받은 상태 그대~~~~~로 코딩해서 DB 에 부어주면 되는 상태 입니다..

근데 그누보드 패스워드가 어떻게 이뤄져있는지 를 몰라서 좀 해메고 있네요..

사용자 가입시 패스워드가 어떤식으로 조합되서 저장되는지가 궁금합니다..



답변좀 부탁 드리겠씀돠~~  ㄳ


  • 복사

댓글 전체

mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes 로 리턴이 됩니다.

그럼... 예를 들어봅시다.
mysql 4.0x 이하 버전에서 운영하던 디비를 mysql 4.1x 이상 버전으로 이전시 문제가 발생합니다.
로그인시 암호화된 자료의 복호화기 안되기 때문에 어렵습니다.
이때는 old_password() 라는 함수를 사용하면 됩니다.
select password('$value') as pass 해서 암호화된 문자와 비교하는것을 select old_password('$value') as pass 식으로 변경하면 기존의 16byte로 암호화해서 비교할 수 있습니다.

그누의 경우에 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_password($value)
{
    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
    $row = sql_fetch(" select old_password('$value') as pass ");
    return $row[pass];
}
움.. 현재 그누보드에서 쓰는게 4.1 버젼 이상의 패스워드 함수를 쓰는건가요 ????

더 추가 해서 변경되거나 그런건 없나요 ???

그점이 궁금함돠~~~ :)

그부분까지 답변좀 부탁 드리겠습니다.. ㄳ요 ~~ :)
그누보드에서 지정하는 것이 아니구요.. 서버에서 지정합니다.
빨간 망토님의 설명sql 버젼이 4.1 이상이어도 4.0 이전으로의 password 를 사용할 경우
select old_password('$value') as pass 라고 old_password 를 사용하면 된다는 의미입니다.
현재의 DB가 4.0 이고 이전할 DB가 4.1 이면 그대로 올리고 old_password를 사용하면 된다는 거죠.
php는 스크립트언어고, mysql는 디비입니다.
여기서 버젼은 디비를 따라간다는 것입니다.
php와는 상관이 없습니다.
그누를 설치하는 디비에 따라서 자동으로 비번이 암호화 됩니다.
네 답변 감사합니다 :)

strlen 함수 써서 캐릭터 갯수 확인후에 확신을 얻었네염.. ^^

일단 사용자가 회원가입을 할때도 그렇고  댓글을 쓸때도 그렇고


41 글자로 비번이 지정되네요 ^^ ;;

감사합니다 :)
© SIRSOFT
현재 페이지 제일 처음으로