디비이전으로 인한 암호화 변경 문제 mysql password() → md5
본문
mssql 의 디비를 그누보드5로 이전을 할려고 합니다
기존비번들이 모두 md5로 암호화가 되어 있어서, 이전할 그누보드 암호화 방식을
mysql password() 가 아닌 md5 로 변경해서 사용을 할려고 합니다
register_form_update.php 에서
get_encrypt_string($mb_password) 를 md5($mb_password) 로 변경하니 mysql에는
md5로 변경해서 들어가는건 확인했습니다
로그인 부분은 어디서 변경을 해야하나요?
login_check.php 에서 변경하는거 같긴한데, 어느부분을 어떻게 해야하는지 잘 모르겠어서 질문드립니다
답변 4
그누보드5 5.0.33 이후 버전부터는 암호화 함수를 사용자가 지정할 수 있습니다.
config.php 파일의 G5_STRING_ENCRYPT_FUNCTION 상수 값을 sql_password 에서
md5 로 변경하시면 추가적인 수정없이 md5 로 사용할 수 있습니다.
/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'];
}
요 부분을 수정하면 될 것 같습니다.
!-->bbs/login_check.php 파일에서 ....
// md5 패스워드 적용 완료 버전
if (!$mb[mb_id] ||
( (sql_password($mb_password) != $mb[mb_password]) &&
(md5($mb_password) != $mb[mb_password]))) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
if( (md5($mb_password) == $mb[mb_password])){
$mb[mb_password] = sql_password($mb_password);
}
config.php 파일의 G5_STRING_ENCRYPT_FUNCTION 상수 값을 sql_password 에서
md5 로 변경하면 추가적인 수정없이 md5 로 사용할 수 있는 걸 확인했습니다.
다만 처음 설치후 관리자 비번은 sql_password 로 들어가기 때문에 디비에서 md5 값으로 변경해주면
정상적으로 사용이 가능했습니다