테스트 사이트 - 개발 중인 베타 버전입니다

mysql5 에 있던 41바이트 암호를 mysql4 에서 인식하게 하기

· 15년 전 · 7025 · 4

아래 url 질문을 보고 저도 한참 생각해보다가 나름대로 찾은 방법입니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=170703&page=4


문제는 기존에 호스팅 회사에서는 41 byte 패스워드를 사용하는 mysql5 를 사용하고 있다가
소위 old_password 함수 격인 mysql4 로 넘어갔을 때인데
기존 mysql5 에서 저장되었던 41바이트 암호를 mysql4 에서 어떻게 인식할 수 있게 하느냐 입니다.

우선 mysql5 에서 password  함수를 사용한 결과

mysql> select password('1111');

+-----------------------------------------------+
| password('1111')                                             |
+-----------------------------------------------+
| *89C6B530AA78695E257E55D63C00A6EC9AD3E977 |
+-----------------------------------------------+
1 row in set (0.02 sec)

mysql4 에서 password 함수 사용 결과
mysql> select password('1111');

+------------------+
| password('1111') |
+------------------+
| 45271aba0b765d95 |
+------------------+
1 row in set (0.00 sec)

아래는 mysql 의 password 함수 대신 php 코드만으로 mysql5 password 함수를 구현한것입니다.

<?

   print mysql5_password('1111');  

   function mysql5_password($in) {   
      $passwd = sha1($in,true);
      $passwd = sha1($passwd);
      return "*".strtoupper($passwd);
   }

?>

실행 결과

chanchan-ui-MacBook:~ chanchan$ php passwd_test.php
*89C6B530AA78695E257E55D63C00A6EC9AD3E977

위의 함수를 적절한 곳( 가령 인증 부분 ) 에 응용한다면 mysql4 기반에서도 mysql5 의 41바이트 패스워드를 사용할 수 있을것 같습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

mysql도 버전간 호환이 참....허긴 오래되긴 했네요.
대단한 아이디어입니다.
그누보드같은경우에 제가 직접 들여다보질 않아서 확신할 수는 없지만 인증부분, 회원가입부분, 회원정보수정부분에 위 사항을 적용하면 될것 같습니다.
14년 전
오~ 굿~
하악. 팁올리려고 보니.. 이미 아주 오랜 옛날에 올라온 팁이었군요 ㅠㅠ ㅋㅋ
검색 해보길 참 잘 한 것 같습니다~

게시글 목록

번호 제목
34706
34693
34563
34536
34521
34480
34479
34466
34437
34436
34435
34406
34398
34387
34382
34375
34364
34336
34294
34293