티스토리 뷰

카테고리 없음

PasswordEncoder

eyoadgkn 2024. 6. 20. 20:48
PasswordEncoder
Spring Security에서 제공하는 인터페이스로, 비밀번호 암호화와 비교를 위한 표준 메서드를 정의하고 있습니다.
이 인터페이스를 구현한 구현체를 사용하면 비밀번호를 안전하게 저장하고 검증할 수 있습니다.


PasswordEncoder 메서드

encode(CharSequence rawPassword): 원본 비밀번호를 암호화하여 해시 값을 반환합다.
matches(CharSequence rawPassword, String encodedPassword): 원본 비밀번호와 암호화된 비밀번호가 일치하는지 검증합니다.
upgradeEncoding(String encodedPassword): 기존에 저장된 비밀번호의 암호화 방식을 업그레이드할 때 사용합니다.

PasswordEncoder 구현체

BCryptPasswordEncoder: BCrypt 해싱 함수를 사용하여 비밀번호를 암호화합니다.
Argon2PasswordEncoder: Argon2 해싱 함수를 사용하여 비밀번호를 암호화합니다.
NoOpPasswordEncoder: 비밀번호를 암호화하지 않고 그대로 사용합니다.

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

public class PasswordEncoderExample {
    public static void main(String[] args) {
        // PasswordEncoder 생성
        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

        // 비밀번호 암호화
        String rawPassword = "myPassword123";
        String hashedPassword = passwordEncoder.encode(rawPassword);
        System.out.println("Hashed Password: " + hashedPassword);

        // 비밀번호 검증
        boolean isMatch = passwordEncoder.matches("myPassword123", hashedPassword);
        System.out.println("Password Match: " + isMatch);
    }
}

BCryptPasswordEncoder 객체를 생성합니다.
encode() 메서드를 사용하여 원본 비밀번호를 암호화합니다.
matches() 메서드를 사용하여 원본 비밀번호와 암호화된 비밀번호가 일치하는지 확인합니다.
이와 같이 PasswordEncoder 인터페이스와 그 구현체를 사용하면 비밀번호를 안전하게 저장하고 검증할 수 있습니다. 
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
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 31
글 보관함