Skip to content

Commit 91f904e

Browse files
authored
Merge pull request #84 from sw-security-web-app/SCRUM-85
[SCRUM-85] 새 비밀번호 발급 메소드 구현 및 변경
2 parents a8e96cc + b3a380b commit 91f904e

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/main/java/example/demo/domain/member/mail/MailServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ private MimeMessage createTemporaryPassword(String mail){
8383
);
8484

8585
String subject="[Vero AI]임시비밀번호";
86-
String uuid=CreateRandom.createShortUuid();
86+
String uuid=CreateRandom.createNewPassword();
8787
findMember.setPassword(passwordEncoder.encode(uuid));
8888
memberRepository.save(findMember);
8989
String body="<h3>"+"임시 비밀번호입니다."+"</h3>"+

src/main/java/example/demo/util/CreateRandom.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import java.util.UUID;
1010

1111
public class CreateRandom {
12+
//비밀번호용 특수문자
13+
private static final char[] specialChars={'!', '@', '#', '$', '%'};
1214
public static String createShortUuid(){
1315
try {
1416
String uuidString = UUID.randomUUID().toString();
@@ -36,4 +38,31 @@ public static String createRandomNumber(){
3638
}
3739
return randomNum;
3840
}
41+
42+
public static String createNewPassword(){
43+
try {
44+
String uuidString = UUID.randomUUID().toString();
45+
byte[] uuidStringBytes = uuidString.getBytes(StandardCharsets.UTF_8);
46+
47+
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
48+
byte[] hashBytes = messageDigest.digest(uuidStringBytes); // 해시 계산 수행
49+
50+
StringBuilder sb = new StringBuilder();
51+
for (int j = 0; j < 4; j++) { // 앞 4바이트만 사용
52+
sb.append(String.format("%02x", hashBytes[j]));
53+
}
54+
55+
// 특수문자 배열
56+
Random random = new Random();
57+
58+
// 특수문자 3개 추가
59+
for (int i = 0; i < 3; i++) {
60+
sb.insert(random.nextInt(sb.length()), specialChars[random.nextInt(specialChars.length)]);
61+
}
62+
63+
return sb.toString();
64+
} catch (NoSuchAlgorithmException e) {
65+
throw new RestApiException(UtilErrorCode.INTERNAL_ERROR); // 예외 처리
66+
}
67+
}
3968
}

0 commit comments

Comments
 (0)