그누보드가 비밀번호를 비교하는 방법에 대한 문의
본문
안녕하세요.
그누보드5는 md5를 이용한 비밀번호 암호화 방식을 사용하는 것으로 알고 있습니다.
소스를 보니 get_encrypt_string 함수를 이용하여 비밀번호를 암호화 시키는 것 같던데 여기서 궁금한 것이, 그럼 사용자가 로그인을 시도할 때 사용자가 입력한 비밀번호를 get_encrypt_string 함수를 이용해 암호화를 시키고 암호화된 비밀번호를 DB와 매칭시켜서 로그인을 시키는 것인가요?
답변 3
만약 로그인을 시도하는 비밀번호가 1111 이라고 가정합니다.
그러면 login_check.php 파일에서
1111이라는 비밀번호를 mysql의 password() 함수를 실행해서
암호화 값으로 가져옵니다.
여기에서 가져온 비밀번호를
로그인을 시도하는 회원정보 DB 저장되어있는 비밀번호(암호화로 저장되어있음)와 비교하여
비밀번호가 동일한지를 판단합니다.
더 간단하게 설명하다면 말씀하신데로 돌아가고있는 중입니다.
/bbs/login_check.php
파일을 보시면
check_password($mb_password, $mb['mb_password'])
문장이 있습니다.
해당 문장은
결국 mysql 의 select password('비밀번호') as password
를 추출해서 동일한 암호화된 값을 비교하는 내용입니다.
http://victorydntmd.tistory.com/144 내용을 보니
mysql 의 password() 함수는 SHA-1 알고리즘을 두 번 거쳐서 앞에 * 를 붙이는 방식이라고 합니다.
답변을 작성하시기 전에 로그인 해주세요.