MySQL 8.0 이상 버전에서의 그누보드 비밀번호 검증 코드 > 그누보드5 팁자료실

그누보드5 팁자료실

MySQL 8.0 이상 버전에서의 그누보드 비밀번호 검증 코드 정보

MySQL 8.0 이상 버전에서의 그누보드 비밀번호 검증 코드

본문

카페 24에서 운영중이던 홈페이지를 수정사항이 생겨 로컬로 개발환경을 세팅해서 (php, db) 로그인을 해보려 했으나 로그인이 되질 않더라구요.

 

원인을 찾아보니 그누보드의 lib/common.lib.php 파일에서 비밀번호 검증 할때 쓰이는 코드 중 mysql 8.0 버전 이상에서는 사라진 mysql 함수가 있었습니다.

 

1890025293_1688107870.1125.png

 

위의 password(..) 함수가 더이상 존재하지 않고 대신에 SHA2() 함수를 사용하라고 스택오버플로우에서 얘기하더라구요

출처) https://stackoverflow.com/questions/52320576/in-mysql-server-8-0-the-password-function-not-working

 

그래서 해당 함수를 아래와 같이 바꿨습니다.

 

1890025293_1688108005.8052.png

 

기존의 password와 유사하게 문자열로부터 해쉬값을 생성하는 함수로 변경하고

 

DB 상에서는 phpmyadmin 에서 UPDATE 문을 사용해 수동으로 검증 코드에 맞게 mb_password 값을 변경해 주었습니다.

UPDATE g5_member SET mb_password = CONCAT('*', UPPER(SHA1(UNHEX(SHA1($value))))) WHERE mb_id = 'admin';

 

단, 저는 로컬에서 admin 계정만 이런식으로 임시방편으로 로그인이 가능하게 만든 것이고 이미 많은 수의 유저들이 사용하는 운영중인 홈페이지에서 mysql 8.0 으로 버전업에 사용하기엔 부적절한 방법 같습니다.

추천
3

댓글 4개

php 코드로 구현할 수도 있습니다.

password (4.1 이후 41자리): https://stackoverflow.com/a/27282287

old_password (4.0이하 버전 16자리): https://onlinephp.io/code/a7a66c7e4b79b52aaa9f948fc8b8f23fe2644492
저게 의도적으로 사용하기보다는 (사이트에 따라) 그누보드에서 여전히 사용되는 함수입니다.

PASSWORD() 함수가 사용되던 시절에 생성된 암호가 여전히 DB에 저장되어있을 때죠.
전체 2,432 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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