일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 컴포지트패턴
- gitops
- go
- AWS
- Infra
- Buffered channel
- Kubernetes
- http 413
- Logrus
- System Design
- goland
- 사설 ip
- golang
- 배포 파이프라인
- 대규모 시스템 설계
- 티스토리챌린지
- GoF 디자인패턴
- apollo router
- GoF
- intellij ide
- notification system
- 오블완
- body size
- 디자인패턴
- elasticsearch
- 윈도우키보드
- UnBuffered channel
- m4 pro
- 배포 프로세스
- Intellij
Archives
- Today
- Total
Fall in IT.
자바 Base64 인코드/디코드 본문
반응형
안녕하세요.
오늘은 Base64에 대해서 알아보겠습니다.
Base64란?
- 컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다.
Base64 동작방식
base64는 8bit의 데이터(바이너리)를 6bit의 크기로 표현합니다. 따라서 24bit를 단위로 하여 3개의 문자에서 4개의 문자를 얻게 되는 것입니다.
위와 같이 abc를 base64 인코딩 하여 YWJj를 얻을 수 있게 됩니다. 여기서 6bit의 이진수는 아래의 base64 table을 이용하여 문자로 바꿔줍니다.
base64 인코딩 24bit 단위인데 인코딩할 문자가 3개(24bit) 단위가 아닐 때는 어떻게 되는지 알아보겠습니다.
위의 결과를 보면 a라는 문자 하나를 넣었을 때는 YQ==으로 base64 table에 없는 '=' 문자가 추가된 것을 알 수 있습니다. '='은 bit수를 맞춰주기 위해 0으로 채워주는 패딩이라는 것 입니다.
자바에서 Base64 인코딩/디코딩하기 예제
1. Apache Commons Codec 사용
- 반드시, maven 디펜던시를 추가하거나, jar파일을 추가해야 사용할 수 있습니다.
2. 자바 util 패키지 사용
모두 즐거운 코딩하세요~
참조
Maven Apache Commons Codec, https://mvnrepository.com/artifact/commons-codec/commons-codec
반응형
'프로그래밍언어 > Java' 카테고리의 다른 글
자바에서 this와 super란? (1) | 2016.08.08 |
---|---|
스트래티지(Strategy) 패턴 사용하기 (0) | 2016.07.28 |
싱글톤 패턴(Singleton Pattern) 사용하기 (4) | 2016.07.25 |
자바 실행 에러 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/chat/SyChatAppApplication : Unsupported major.minor version 52.0 (0) | 2016.07.07 |
Map 객체, key 또는 value를 사용한 정렬 (2) | 2016.04.08 |
Comments