BCryptPasswordEncoder 로그인
비밀번호를 암호화하여 DB에 저장하고
같은 비밀번호를 암호화해도 다른 값이 저장되는데
로그인시 같은 비밀번호인지 어떻게 알 수 있나요???
답변 1
4
안녕하세요, 이도원입니다.
BCryptPasswordEncoder는 BCrypt 해싱 함수(Bcrypt Hashing Function)를 사용해서 데이터를 암호화하는 클래스입니다. Bcrypt는 데이터(주로 패스워드)를 해싱할 때 내부적으로 랜덤한 솔트를 생성하기 때문에 같은 문자열에 대해서도 다른 결과를 생성해 냅니다. 같은 데이터를 암호화 하였을 때, 매번 같은 데이터가 발생하면, 누구나 쉽게 데이터를 복호화 할 수도 있을 겁니다.
다음은 BCryptPasswordEncoder 이용해서 5개의 암호화 된 데이터를 생성하는 코드와, 이전에 생성되었던 키를 원본 문자와 비교하는 코드입니다. 참고하세요.
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
int i = 0;
while (i < 5) {
String password = "123456";
String hashedPassword = passwordEncoder.encode(password);
System.out.println(hashedPassword);
i++;
}
System.out.println(passwordEncoder.matches("123456",
"$2a$10$GHI5DSLoScy6mBu2uFm0PeJkiN0W5fnsknM/ja7EAhxexTqqO4QTq"));
System.out.println(passwordEncoder.matches("123456",
"$2a$10$pKsi9//8s.w20E4e3p3ZqeyC7kOsZHqrYvDRg0auQb0BxmTqH0yzm"));
System.out.println(passwordEncoder.matches("123456",
"$2a$10$xu.8LmuYK2WBt2fpUXc3Q.tsiCtEhSDB7essMDXFCcNCOwrHIbBie"));
<결과>

감사합니다.
kafka 업데이트 강의 듣고 시포요
0
83
1
강의 교안
0
71
1
마이크로서비스간 통신 시, 인증 처리
0
79
1
api gateway 에서 인증 처리
0
64
1
섹션 19 질문드립니다
0
51
1
강의 자료 업데이트
0
81
1
부하분산 강의 섹션
0
56
1
강의자료는 어디에서?
0
69
1
강의 자료는 어디서 다운 받을 수 있나요?
0
109
1
전체 사용자 조회시 오류
0
57
1
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
0
108
2
학습 방향
0
94
2
카프카 커넥터 사용 목적 문의
0
85
2
kafka 강의
0
106
2
서비스 디스커버리 종류
0
86
2
강의 자료에 대해서 궁금해요
0
115
2
GlobalFilter, LoggingFilter가 동작하지 않습니다.
0
88
2
Kafka Source Connect 버전 에러
0
83
2
소스커넥터는 사용안한 거 맞죠?
0
81
2
강의자료 업데이트 문의
0
94
2
강의에서 BCryptPasswordEncoder 에 역할(5-2)
0
56
1
강의 업데이트 계획이 궁금합니다.
0
111
2
MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)
0
160
2
어떤 것이 업데이트 된 건가요?
0
162
2





