inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Users Microservice - 기능 추가

BCryptPasswordEncoder 로그인

해결된 질문

788

별천랑

작성한 질문수 2

1

비밀번호를 암호화하여  DB에 저장하고

같은 비밀번호를 암호화해도 다른 값이 저장되는데

로그인시 같은 비밀번호인지 어떻게 알 수 있나요???

architecture spring-boot JPA spring-cloud msa Kafka

답변 1

4

Dowon Lee

안녕하세요, 이도원입니다. 

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