Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

PasswordEncoder 한 비밀번호를 비교해주는 matches와 이유 본문

Spring

PasswordEncoder 한 비밀번호를 비교해주는 matches와 이유

H.S-Backend 2024. 6. 21. 21:04

 

암호화된 비밀번호를 비교할 때

equals를 사용하는 것은 적절하지 않다.

 

passwordEncoder.matches를 사용하는 것이

 

안전한 이유는

 

비밀번호 해싱 및 솔팅

비밀번호는 단순히 암호화 되는것이 아닌 보통 해시 함수와 솔팅(solting) 과정을 거친다.

 

같은 비밀번호라도 매번 다른 솔트(정렬)값이 추가되기에
해시결과가 항상 달라진다.

그래서 같은 비밀번호도 해시 결과가 다르기때문에

equals로 비교하면 항상 다르게 나온다.


해싱이란 

해싱은 해시 함수에 문자열 입력값을 넣어서 특정한 값으로 추출하는 것을 의미한다.

 

솔팅(solting)이란

정렬을 의미한다.


보안성 

passwordEncoder.matches는

 

원래의 비밀번호를 해시하고

이를

데이터베이스에 저장된 해시값과 비교하는 역할을 한다.

 

해시 함수는

단방향 함수이기에 원래 비밀번호를 복구할 수 없고

이로 인해서 보안성이 강화된다.


일관된 비교

passwordEncoder.matches는

 

내부적으로

해싱 알고리즘을 통해서 일관된 비교를 수행하기에

해싱된 비밀번호를 안전하게 비교할 수 있다.

passwordEncoder.matches

 

변수는 꼭 소문자로 시작해야된다.

반응형