[ java] 임시 비밀번호 발급

Yuni·2023년 3월 22일
0

Java

목록 보기
4/15

임시비밀번호를 발급해봅시다
저는 특수문자 + 비밀번호만을 사용 할 예정입니다

Controller.java

String newPassword= findListService.getRamdomPassword(10);

Service.java

// 랜덤비밀번호
	public String getRamdomPassword(int size) {
        char[] charSet = new char[] {
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', '@', '#', '$', '%', '^', '&' };
        StringBuffer sb = new StringBuffer();
        SecureRandom sr = new SecureRandom();
        sr.setSeed(new Date().getTime());

        int idx = 0;
        int len = charSet.length;
        for (int i=0; i<size; i++) {
            // idx = (int) (len * Math.random());
            idx = sr.nextInt(len);    // 강력한 난수를 발생시키기 위해 SecureRandom을 사용한다.
            sb.append(charSet[idx]);
        }
        return sb.toString();
    }

이렇게 해주면 임시 비밀번호가 발급되고 이걸 DB에 저장하면 끝!

Controller.java

UserVO vo = new UserVO();
vo.setId(param.get("id").toString()); // 입력값을 받아옴
vo.setPwd(leaService.encrypt(newPassword)); // 임시비밀번호를 암호화해줌
findListService.newPassword(vo); // 저장

Service.java

// 새로운 비밀번호 랜덤발급 후 저장
	public void newPassword(UserVO vo) {
		mapper.newPassword(vo);
	}

Mapper.java

// 새로운 비밀번호 랜덤발급 후 저장
	public void newPassword(UserVO vo);

Mapper.xml

	<!-- 새로운 비밀번호 랜덤발급 후 저장 -->
	<update id="newPassword" parameterType="com.domain.UserVO">
		update tbl_user set user_pwd=#{pwd}
		WHERE user_id = #{id}
	</update>

출처
임시비밀번호 https://byul91oh.tistory.com/466

profile
backend developers

0개의 댓글