본문 바로가기
웹개발/spring && springboot

[스프링]base64 암호화

by 지구별 여행자 임탱 2024. 3. 1.
728x90

스프링으로 웹 구현시 로그인 할때라든지 비밀번호는 암호화 해서 많이 사용합니다.

가장 기본적으로 사용되는 암호화가 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 클래스를 통해 간편하게 인코딩 및 디코딩을 수행할 수 있습니다.