암호화: 평문 → (암호화 알고리즘) → 암호문
복호화: 암호문 → (암호화 알고리즘) → 평문
암호화: 평문 → (암호화 알고리즘) → 암호문
복호화: 불가 (암호문 → (암호화 알고리즘) → 평문)
테스트 코드에서 가져왔다.
@SpringBootTest
public class PasswordEncoderTest {
// PasswordEncoder 주입 받기
@Autowired
PasswordEncoder passwordEncoder;
@Test
@DisplayName("수동 등록한 passwordEncoder를 주입 받아와 문자열 암호화")
void test1() {
String password = "Robbie's password";
// 암호화
String encodePassword = passwordEncoder.encode(password); // passwordEncoder.encode(암호화할 문자열);
System.out.println("encodePassword = " + encodePassword);
String inputPassword = "Robbie";
// 복호화를 통해, 암호화된 비밀번호와 비교
boolean matches = passwordEncoder.matches(inputPassword, encodePassword); // passwordEncoder.matches(입력받은 값, 암호화된 값)
System.out.println("matches = " + matches); // 암호화할 때 사용된 값과 다른 문자열과 비교했기 때문에 false
}
}
passwordEncoder.encode(암호화할 문자열);
: 해당 문자열을 암호화한다
passwordEncoder.matches(입력받은 값, 암호화된 값);
: 두 값을 서로 비교한다