maven repository에서 비밀번호 암호화 라이브러리 가져오기
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
SHA256Util.java
package kr.mds.controller;
import java.security.MessageDigest;
import org.springframework.stereotype.Component;
@Component
public class SHA256Util {
public static String encrypt(String planText) {
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(planText.getBytes());
byte byteData[] = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
String hex = Integer.toHexString(0xff & byteData[i]);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
}
java 클래스
@Controller
public class userController {
// 비밀번호 암호화 의존성 주입
@Autowired
private SHA256Util pwEncoder;
// 회원가입 후 로그인 페이지로 이동
@PostMapping("/signUp.com")
public String singUp(User user) {
// 비밀번호 암호화
System.out.println("첫번째:" + user.getU_pw());
System.out.println("첫번째:" + user.getU_pw_confirm());
// 비밀번호 암호화 (sha256)
String u_pw = pwEncoder.encrypt(user.getU_pw());
String u_pw_confirm = pwEncoder.encrypt(user.getU_pw_confirm());
user.setU_pw(u_pw);
user.setU_pw_confirm(u_pw_confirm);
System.out.println("두번째:" + user.getU_pw());
System.out.println("두번째:" + user.getU_pw_confirm());
// 회원가입 메서드
int result = mapper.signUp(user);
if (result > 0)
return "redirect:/signIn.com";
else
return "signUp";
}
// 로그인 후 메인페이지로 이동
@PostMapping("/")
public String main(User user, Model model) {
// 암호화된 비밀번호로 로그인
System.out.println("첫번째:" + user.getU_pw());
String u_pw = pwEncoder.encrypt(user.getU_pw());
user.setU_pw(u_pw);
System.out.println("두번째:" + user.getU_pw());
User result = mapper.signIn(user);
model.addAttribute("result", result);
// 메인페이지에서 아이디에 맞게 rtsp 영상 송신
CCTV list = cctvmapper.listSelect(user.getU_id());
model.addAttribute("list", list);
if (result != null)
return "main";
else
return "redirect:/signIn.com";
}
}
=> 회원가입할 때 입력받은 비밀번호 u_pw를 암호화하여 setU_pw에 담아준다. set해준 변수(비밀번호)는 기능구현할 DAO 메소드에 저장되어진다.
=> 로그인할 때도 회원가입과 마찬가지로 입력받은 비밀번호를 암호화하여 set해주면 DAO 메소드에 저장되어져 사용자가 입력받은 비밀번호와 DB에 저장된 해쉬화 암호를 알아서 인식한다.
참조 블로그)
https://m.blog.naver.com/vnemftnsska2/221414102588
'프레임워크(Framework) > Spring' 카테고리의 다른 글
[Spring] Ajax를 이용하여 알림 개수 카운트_int를 String으로 변환 (0) | 2023.08.01 |
---|---|
[MVC] Post 방식으로 페이지 이동하기 (0) | 2023.07.20 |
[Spring] 구글 이메일 인증 (0) | 2023.07.16 |
[Spring] 회원가입할 때 비밀번호 재확인 (0) | 2023.07.16 |
[Spring] 회원가입할 때 아이디 중복 체크 (0) | 2023.07.16 |
댓글