공부/그룹 스터디

[3회차 06] 비밀번호 암호화

junani0v0 2024. 4. 18. 01:14

전에 회원가입해서 값을 DB에 넣는걸 해보았는데요

이번에는 DB에 값을 넣을때 비밀번호값을 암호화해서 넣어보겠습니다

    <!-- https://mvnrepository.com/artifact/at.favre.lib/bcrypt -->
    <dependency>
        <groupId>at.favre.lib</groupId>
        <artifactId>bcrypt</artifactId>
        <version>0.10.2</version>
    </dependency>

먼저 암호화를 위해 https://mvnrepository.com 에서 BCrypt Password Hashing Function 라이브러리 최신버전을 pom.xml에 추가 & maven 업데이트 해줍니다

public int join(HashMap<String, String> params) {
		String passwd = params.get("passwd");
		String encPasswd = BCrypt.withDefaults().hashToString(12, passwd.toCharArray());
		System.out.println("encPasswd >>>>>>>>> " + encPasswd);
		BCrypt.Result result = BCrypt.verifyer().verify(passwd.toCharArray(), encPasswd);
		System.out.println("result.verified >>>>>>> " + result.verified);
		
		params.put("passwd", encPasswd);
		return joinDao.join(params);
	}

JoinService에 위 코드를 추가하면고 서버를 실행합니다

그리고 회원가입창에서 정보를 입력후 제출하면

콘솔에 보면 비밀번호를 1234로 입력했는데 $2....이라는 암호로 바뀌는걸 확인 가능하며

table에서도 암호화되 들어온것을 확인할 수 있습니다

 

- 수정 -

<script type="text/javascript">
    window.onload = function(){
        var result = '${result}';
        var msg = '${msg}';
        if(result != ''){
            alert(msg);
            window.location.href = '/03/loginPage.do';//성공하든 실패하든 무조건 리다이랙트되야됨
        }
    }
</script>

그리고 login.jsp에서 회원가입이 실패해도 loginPage.do로 가야하가이 코드를 수정해 주었습니다

loginPage.do로 리다이렉트 시켜줍니다

안그러면 주소줄이 submit url로 남아있어서 새로고침 할때 마다 회원가입이 됩니다