그누보드의 패스워드 구성. 정보
그누보드의 패스워드 구성.본문
에~~~ 안녕하십니까.. 존경하는 SIR 관리자 림화 및
일전에DB 때문에 질문을 올렸던 퍼그씨 라고 함돠..
[일전에 질문 올렸던 링크 보기]
다름아니고 사용자 DB 이전에 대해서 우선 확답을 받아놓은 상태이고
그 확답 받은 상태 그대~~~~~로 코딩해서 DB 에 부어주면 되는 상태 입니다..
근데 그누보드 패스워드가 어떻게 이뤄져있는지 를 몰라서 좀 해메고 있네요..
사용자 가입시 패스워드가 어떤식으로 조합되서 저장되는지가 궁금합니다..
답변좀 부탁 드리겠씀돠~~ ㄳ
일전에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];
}
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를 사용하면 된다는 거죠.
빨간 망토님의 설명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와는 상관이 없습니다.
그누를 설치하는 디비에 따라서 자동으로 비번이 암호화 됩니다.
여기서 버젼은 디비를 따라간다는 것입니다.
php와는 상관이 없습니다.
그누를 설치하는 디비에 따라서 자동으로 비번이 암호화 됩니다.
네 답변 감사합니다 :)
strlen 함수 써서 캐릭터 갯수 확인후에 확신을 얻었네염.. ^^
일단 사용자가 회원가입을 할때도 그렇고 댓글을 쓸때도 그렇고
41 글자로 비번이 지정되네요 ^^ ;;
감사합니다 :)
strlen 함수 써서 캐릭터 갯수 확인후에 확신을 얻었네염.. ^^
일단 사용자가 회원가입을 할때도 그렇고 댓글을 쓸때도 그렇고
41 글자로 비번이 지정되네요 ^^ ;;
감사합니다 :)
즐거운 작업되세요.