민감한 정보를 보호하기 위해 해당 정보를 무작위로 변환하여 누구나 쉽게 이해할 수 없는 형태로 만드는 과정입니다. 이때 사용되는 특별한 규칙을 "암호" 또는 "키"라고 부릅니다.
암호화된 정보를 원래의 의미로 돌리는 과정입니다. 이 과정은 암호화된 데이터와 암호화에 사용된 키가 필요합니다.
같은 키로 암호화와 복호화를 수행하는 방식
입니다. 암호화와 복호화에 동일한 키를 사용하기 때문에 키 관리가 중요합니다. 대표적인 알고리즘으로는 AES (Advanced Encryption Standard)
가 있습니다.공개키와 개인키 두 가지 키를 사용하는 방식
입니다. 공개키로 암호화하면 개인키로만 복호화할 수 있고, 개인키로 암호화하면 공개키로만 복호화할 수 있습니다. 주로 인증 및 안전한 키 교환을 위해 사용됩니다. RSA
가 가장 잘 알려진 비대칭키 암호화 알고리즘입니다.BCryptPasswordEncoder
:import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
public class PasswordEncoderExample {
public static void main(String[] args) {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String rawPassword = "mysecretpassword";
String encodedPassword = passwordEncoder.encode(rawPassword);
System.out.println("Encoded Password: " + encodedPassword);
boolean passwordMatches = passwordEncoder.matches(rawPassword, encodedPassword);
System.out.println("Password Matches: " + passwordMatches);
}
}
MessageDigestPasswordEncoder
:import org.springframework.security.crypto.password.MessageDigestPasswordEncoder;
public class PasswordEncoderExample {
public static void main(String[] args) {
MessageDigestPasswordEncoder passwordEncoder = new MessageDigestPasswordEncoder("SHA-256");
String rawPassword = "mysecretpassword";
String encodedPassword = passwordEncoder.encode(rawPassword);
System.out.println("Encoded Password: " + encodedPassword);
}
StandardPasswordEncoder
:import org.springframework.security.crypto.password.StandardPasswordEncoder;
public class PasswordEncoderExample {
public static void main(String[] args) {
StandardPasswordEncoder passwordEncoder = new StandardPasswordEncoder();
String rawPassword = "mysecretpassword";
String encodedPassword = passwordEncoder.encode(rawPassword);
System.out.println("Encoded Password: " + encodedPassword);
}
}