[CS] Base64 인코딩

해니·2024년 6월 26일
0

CS

목록 보기
11/15
post-thumbnail



Base64 인코딩이란?

  • 8비트 이진 데이터(ex. 실행파일, zip파일 등)를 문자 코드에 영향을 받지 않는 아스키 코드(ASCII CODE) 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식

아래와 같은 순서로 Base64 인코딩이 진행된다.
원본 문자열 > ASCII binary > 6bit로 cut > Base64 인코딩



Base64 인코딩 이유

  • Base64는 이메일이나 웹에서 바이너리 데이터를 안전하게 전송하고 저장하기 위해 개발되었다.
    • 이메일과 같은 텍스트 기반 프로토콜에서는 바이너리 데이터를 전송할 수 없다.
  • 암호화나 압축체계가 아니라, 통신과정에서 바이너리 데이터 형태의 손실을 막기 위해서, 네트워크를 통해 난독화된 문자열을 전송할 수 있는 바이너리 데이터를 ASCII 코드로 변환시킨다.



리눅스 환경에서 Base64 인코딩

echo '문자열'|base64 



Java에서 Base64 인코딩

SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS256); // HS256: HMAC-SHA256
String secretString = Encoders.BASE64.encode(key.getEncoded());
log.debug(“secretString: {}”, secretString);



Java에서 Base64 디코딩

byte[] keyBytes = Decoders.BASE64.decode(SECRET_KEY);
  • Decoder.BASE64.decode()
    • Base64 형식으로 인코딩 된 Secret Key를 디코딩한 후, byte array를 반환한다.





출처
Chaptor.03 - JWT코드, Security 설정 추가
Base64 인코딩
Base64 인코딩, 디코딩
JWT 생성 및 검증 테스트

profile
💻 ⚾️ 🐻

0개의 댓글