구디아카데미/JAVA
1218 비밀번호 암호화
COCO_develop
2024. 12. 18. 15:45
@PostMapping("/addMember")
public String addMember(Member member) {
log.debug(member.toString());
// 입력한 pw를 암호화
String pw = member.getPw();
log.debug("암호화 전: "+pw);
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(pw.getBytes()); // SHA-256 방식으로 암호화 됨(인코딩)
StringBuffer sb = new StringBuffer();
for(byte b : md.digest()) { // b = 1byte (8bit) 숫자로 0~255
// b -> 문자열로
sb.append(String.format("%02x", b)); // %x: 16진수, %02x: 2자리 16진수
}
pw = sb.toString();
log.debug("암호화 후: "+pw);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "redirect:/";
}
--> 캡슐화, 매서드로 만들기
package com.example.app.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA256Util {
public static String encoding(String str) {
String result = "";
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(str.getBytes()); // SHA-256 방식으로 암호화 됨(인코딩)
StringBuffer sb = new StringBuffer();
for(byte b : md.digest()) { // b = 1byte (8bit) 숫자로 0~255
// b -> 문자열로
sb.append(String.format("%02x", b)); // %x: 16진수, %02x: 2자리 16진수
}
result = sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return result;
}
}
--> 매서드 호출
@PostMapping("/addMember")
public String addMember(Member member) {
log.debug(member.toString());
// 입력한 pw를 암호화
String pw = SHA256Util.encoding(member.getPw());
member.setPw(pw); // 암호화된 pw 주입
memberService.addMember(member);
return "redirect:/";
}