캐이스별 인증 방식 중에 해쉬처리된 비밀번호가 필요해 회원가입 페이지를 만들어 보았다.
서버와 디비 연결은 이전 글에도 설명이 되어 있으니 넘어가고, 필요했던 코드만 작성해 본다.
$hashPw = password_hash($userPw, PASSWORD_DEFAULT);
password_hash는 PHP버전 5.5부터 사용 가능한 API이며, 뒤에 PASSWORD_DEFAULT 부분은 bcrypt 알고리즘을 사용하며, 여러 옵션들을 통해 다른 알고리즘을 사용할 수 있다.
$mSql = "select id from member where id = '".$userId."';";
$result = mysqli_query( $mysqli , $mSql );
while ($rows = mysqli_fetch_array($result)) {
$existId = $rows['id'];
}
if (!is_null($existId)){
#아이디가 존재
echo "<script>alert('중복되는 아이디가 있습니다.'); history.back();</script>";
session_destroy();
exit;
}else{
#아이디 없음 회원가입시작
$mSql = "insert into member( id, pw ) values( '".$userId."', '".$hashPw."');";
$result = mysqli_query( $mysqli , $mSql );
if(!$result){
#실패
echo "<script>alert('실패 입니다.');history.back();</script>";
session_destroy();
exit;
}
}
유저 아이디가 있으면 돌려보내고, 없을시 회원 가입을 시작하는 코드
마지막으로..
3시간정도 오류가 나서 계속 코드 디버깅했는데..
문제는 DB 컬럼 VARCHAR(20)으로 생성해서였다.
생각보다 길이가 긴 해쉬..


시원하게 100까지 길이를 늘려주고 성공!
참조
https://www.codingfactory.net/11707
PHP / 함수 / password_hash() / 비밀번호 암호화하는 함수
개요 password_hash()는 비밀번호를 암호화해주는 함수입니다. 입력한 값이 암호화된 비밀번호와 맞는지 확인하는 것은 password_verify() 함수로 합니다. 문법 password_hash ( string $password , int $algo [, array $o
www.codingfactory.net
'Project > APM웹서버' 카테고리의 다른 글
sha256 해쉬로 로그인 구현하기 (0) | 2021.10.28 |
---|---|
로그인 인증 비밀번호 해시 ( password_verify ) (0) | 2021.10.27 |
식별 / 인증 분리 방식으로 로그인 구현 (0) | 2021.10.25 |
script 에서 클릭 이벤트로 php의 메서드 실행하기 (0) | 2021.10.23 |
PHP Mysql연동을 위한 태그(mysqli_connect) (0) | 2021.10.18 |