mysql5 에 있던 41바이트 암호를 mysql4 에서 인식하게 하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

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

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

본문

아래 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바이트 패스워드를 사용할 수 있을것 같습니다.

추천
3

댓글 4개

그누보드같은경우에 제가 직접 들여다보질 않아서 확신할 수는 없지만 인증부분, 회원가입부분, 회원정보수정부분에 위 사항을 적용하면 될것 같습니다.
전체 3,309 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT