스프링으로 웹 구현시 로그인 할때라든지 비밀번호는 암호화 해서 많이 사용합니다.
가장 기본적으로 사용되는 암호화가 base64 암호화 입니다.
base64 인코딩과 디코딩까지 지원해주지만 실무에서는 보안 사항으로 비밀번호에 대해 디코딩을 하지는 않습니다.
base64 암호화란?
BASE64는 데이터를 안전하게 전송하거나 저장하기 위해 사용되는 인코딩 방식 중 하나입니다.
이 방식은 8비트 이진 데이터를 6비트씩 나누어 문자로 변환하는 방식으로, ASCII 문자로 표현할 수 있는 범위의 문자로만 이루어진 문자열로 변환됩니다.
스프링에서 BASE64 인코딩 및 디코딩하기
스프링 프레임워크에서는 Base64Utils 클래스를 사용하여 BASE64 인코딩 및 디코딩을 수행할 수 있습니다.
스프링 base64 인코딩 예제
import org.springframework.util.Base64Utils;
public class Base64Example {
public static void main(String[] args) {
String originalText = "Hello, World!";
byte[] encodedBytes = Base64Utils.encode(originalText.getBytes());
String encodedText = new String(encodedBytes);
System.out.println("Encoded Text: " + encodedText);
}
}
스프링 base64 디코딩 예제
import org.springframework.util.Base64Utils;
public class Base64Example {
public static void main(String[] args) {
String encodedText = "SGVsbG8sIFdvcmxkIQ==";
byte[] decodedBytes = Base64Utils.decode(encodedText.getBytes());
String decodedText = new String(decodedBytes);
System.out.println("Decoded Text: " + decodedText);
}
}
Base64Utils.encode() 메서드는 입력된 바이트 배열을 BASE64로 인코딩한 바이트 배열을 반환합니다. 이를 문자열로 변환하여 출력합니다.
Base64Utils.decode() 메서드는 BASE64로 인코딩된 문자열을 디코딩한 바이트 배열을 반환합니다. 이를 문자열로 변환하여 출력합니다.
위 예제를 실행하면 "Hello, World!"라는 문자열이 BASE64로 인코딩되어 출력되고, 다시 디코딩하여 원래의 문자열이 복원되어 출력됩니다.
BASE64 암호화는 주로 데이터의 안전한 전송이나 저장을 위해 사용되며, 스프링 프레임워크에서는 Base64Utils 클래스를 통해 간편하게 인코딩 및 디코딩을 수행할 수 있습니다.
'웹개발 > spring && springboot' 카테고리의 다른 글
Mybatis db 언더바 사용된 컬럼과 자바 카멜케이스 변수 자동 매핑 (0) | 2024.03.12 |
---|---|
[Spring]트랜잭션(transaction)의 이해와 트랜잭션 분리방법 (0) | 2024.03.03 |
spring AOP에서 예외 처리를 했다면... (0) | 2024.03.01 |
Spring framework 한글깨짐 해결방안 (0) | 2024.03.01 |
스프링에서 자주 사용하는 어노테이션들... (0) | 2024.02.28 |