임시비밀번호를 발급해봅시다
저는 특수문자 + 비밀번호만을 사용 할 예정입니다
String newPassword= findListService.getRamdomPassword(10);
// 랜덤비밀번호
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에 저장하면 끝!
UserVO vo = new UserVO();
vo.setId(param.get("id").toString()); // 입력값을 받아옴
vo.setPwd(leaService.encrypt(newPassword)); // 임시비밀번호를 암호화해줌
findListService.newPassword(vo); // 저장
// 새로운 비밀번호 랜덤발급 후 저장
public void newPassword(UserVO vo) {
mapper.newPassword(vo);
}
// 새로운 비밀번호 랜덤발급 후 저장
public void newPassword(UserVO vo);
<!-- 새로운 비밀번호 랜덤발급 후 저장 -->
<update id="newPassword" parameterType="com.domain.UserVO">
update tbl_user set user_pwd=#{pwd}
WHERE user_id = #{id}
</update>
출처
임시비밀번호 https://byul91oh.tistory.com/466